[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сложение времени
Гость_Андрей
Доброго времени суток.
Я новичок в изучении PHP и поэтому сильно не пинайте если буду задавать очень глупые вопросы.
В общем задача: есть расписание транспортных средств (автобусов) по городу. В расписание включено время отправления и время прибытия автобусов. Так же время по минутам для каждой остановки по маршруту следования заданного автобуса.

Имеет вид:

Автобус №1 Вокзал-Западный.

Прибытия на остановки:
Вокзал-0
Третья школа-5
Ул. Чкалова-10
Ул. Карповича-15
Западный-20

Расписание:
8-00, 12-25, 15-40, 18-55, 20-50

№1 Западный-Вокзал.

Прибытия на остановки:
Западный-0
Ул. Карповича-5
Ул. Чкалова-10
Третья школа-15
Вокзал-20
Расписание:

8-30, 13-00, 15-55, 19-30, 21-20

И необходимо сделать так когда нажимаешь на определённую остановку (к примеру «Третья школа»( Вокзал-Западный), то там, где расписание заданного маршрута в заданном направлении приплюсовывалось время и уже было не стандартное время, а изменённое – то есть не 8-00, а 8-05, не 18-55, а 19-00, ну и так далее по всему расписанию, и когда нажимаешь на другую остановку то время так же менялось и прибавлялось к изначальному времени время остановки, а при нажатии на первую (то есть начальную остановку) расписание времени переходило в начальные данные).
Нужно ли использовать базы данных или же лучше хранить все данные в php файле?
Как сделать так чтобы когда минуты переваливают за отметку 59, то они обнулялись, и прибавлялся ещё час ко времени, ну, то есть не 18-60, а 19-00. И тоже самое с часами, когда переваливает за отметку 23 часа, то обнулялись до 00, вместо 24).
И можно ли полностью подробно хотя бы на данном примере описать и рассказать как что делать с самого нуля?
П.с. просто хочу в своём городе сделать сайт с расписанием всего городского и пригородного транспорта, чтобы было удобней жителям города.
Заранее спасибо за помощь.





Спустя 5 минут, 34 секунды (25.09.2010 - 04:59) inpost написал(а):
В базе если записей прилично, если 2-3 записи всего, то в скрипте. Если надо дать клиенту право все править и менять, то снова БД.
Для работы со временем есть функция time. Как с ней работать? Поможет он, великий и всезнающий, ГУГЛЪ! =)
Давай так, если во время обучения ты напишешь скрипт, но он будет некоректно работать, или будет не понятно как что-то сопоставить - тогда обращайся, но за тебя ни делать, ни, тем более, описывать всю систему не будет.

Спустя 2 часа, 40 минут, 10 секунд (25.09.2010 - 07:40) Guest написал(а):
Вот сейчас попробовал разбить всю информацию на таблицы и вот что у меня получилось:

-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Сен 25 2010 г., 07:32
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `avtobus`
--

-- --------------------------------------------------------

--
-- Структура таблицы `1_1-2`
--

CREATE TABLE `1_1-2` (
`id` text NOT NULL,
`nazv_ost` text NOT NULL,
`time_ost` time NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `1_1-2`
--

INSERT INTO `1_1-2` VALUES ('1', 'Вокзал', '00:00:00');
INSERT INTO `1_1-2` VALUES ('2', 'Третья школа', '00:05:00');
INSERT INTO `1_1-2` VALUES ('3', 'Ул. Чкалова', '00:10:00');
INSERT INTO `1_1-2` VALUES ('4', 'Ул. Карповича', '00:15:00');
INSERT INTO `1_1-2` VALUES ('5', 'Западный', '00:20:00');

-- --------------------------------------------------------

--
-- Структура таблицы `1_2-1`
--

CREATE TABLE `1_2-1` (
`id` text NOT NULL,
`nazv_ost` text NOT NULL,
`time_ost` time NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `1_2-1`
--

INSERT INTO `1_2-1` VALUES ('1', 'Западный', '00:00:00');
INSERT INTO `1_2-1` VALUES ('2', 'Ул. Карповича', '00:05:00');
INSERT INTO `1_2-1` VALUES ('3', 'Ул. Чкалова', '00:10:00');
INSERT INTO `1_2-1` VALUES ('4', 'Третья школа', '00:15:00');
INSERT INTO `1_2-1` VALUES ('5', 'Вокзал', '00:20:00');

-- --------------------------------------------------------

--
-- Структура таблицы `Info`
--

CREATE TABLE `Info` (
`id` text NOT NULL,
`№avtobusa` text NOT NULL,
`sledovanie` text NOT NULL,
`park` text NOT NULL,
`rejim` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `Info`
--

INSERT INTO `Info` VALUES ('1', '№1 Вокзал – Западный', 'Чкалова, Карповича', '6', 'Будние, Выходные');
INSERT INTO `Info` VALUES ('', '', '', '', '');

-- --------------------------------------------------------

--
-- Структура таблицы `napravl_day_time`
--

CREATE TABLE `napravl_day_time` (
`id` text NOT NULL,
`napravlenie` text NOT NULL,
`day` text NOT NULL,
`time1` time NOT NULL,
`time2` time NOT NULL,
`time3` time NOT NULL,
`time4` time NOT NULL,
`time5` time NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `napravl_day_time`
--

INSERT INTO `napravl_day_time` VALUES ('1', '№1 Вокзал – Западный', 'Будние', '08:00:00', '12:25:00', '15:40:00', '18:55:00', '20:50:00');
INSERT INTO `napravl_day_time` VALUES ('2', '№1 Западный - Вокзал', 'Будние', '08:30:00', '13:00:00', '15:55:00', '19:30:00', '21:20:00');

и сейчас по порядку:
в таблице "Info" я разместил информацию о автобусе
в таблице "napravl_day_time" информация о направлении, днях работы и времени отправления с конечных пунктов
Название таблицы "1_1-2" первая цифра - это номер автобуса, а вторая и третья - это пути следования (это чтобы меньше текста ну и сам я думаю разберусь - хотелось бы надеяться) и тут размещены данные об остановках и время прибытия на них.
в таблице "1_2-1" оналогично предидущей с той разницей что направления следования автобуса - противоположное..
Что скажите - правильно ли я создал таблицу или можно упростить её?
получаеться что для каждого автобуса нужно будет отдельно создавать ещё 2 таблицы - это в одном и в противоположном направлении.

Спустя 5 часов, 16 минут, 56 секунд (25.09.2010 - 12:57) FatCat написал(а):
Храните в базе time() или, если все рассчеты с точностью до минуты, то полное число минут от полуночи.
Все расчеты делайте в секундах или в минутах, и только на выводе информации делайте пересчет на часы с минутами.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.