С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для samarcs
0 / 0 / 2
Регистрация: 01.08.2012
Сообщений: 82

Расписание php+mysql

22.04.2014, 21:54. Показов 2732. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код при выполнении которого из bd берётся Дата в формате YY-MM-DD hh:mm:ss, и сравнивая текущюю дату и дату из бд, таймер отсчитывает время до даты из БД. Когда даты совпадают, то процесс считается завершенным, но вот проблема в том, что приходится каждый раз добавлять следущую дату в БД, чтобы счетчик вновь пошел дальше, а если в БД добавить сразу 2-3 даты или более, то он выберет сразу последнюю.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
/* Соединяемся с базой данных */
$hostname = "localhost"; // адрес сервера с MySQL
$username = "root"; // имя пользователя
$password = ""; // пароль пользователя
$dbName = "newdbs"; // название базы данных
 
/* Таблица MySQL, в которой будут храниться данные */
$table = "schedule";
 
/* Создаём соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
 
/* Выбираем базу данных. Если произойдёт ошибка - вывести её */
mysql_select_db($dbName) or die (mysql_error());
/*Берём дату из БД*/
$query = mysql_query("SELECT date FROM schedule") or die('Запрос не удался: ' . mysql_error());
    while ($result = mysql_fetch_array($query)) {
        $date = $result['date'];
    }
$xd=new DateTime($date);
$now=new DateTime();
 
$go=0;
if($now>=$xd || isset($_GET["go"])) $go=1;
else $go=0;
 
$diff=$xd->diff($now)->format("%D:%H:%I");
?>
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php if(!$go) { ?>
            
            <div id="countbox">
            
            
            <div class='cbn'><div id='cb1'><span></span><?=$diff[0]?></div><div id='cb12'><span></span><?=$diff[1]?></div><div id='cbdt'></div></div>
            <div class='cbs'></div>
            <div class='cbn'><div id='cb2'><span></span><?=$diff[3]?></div><div id='cb22'><span></span><?=$diff[4]?></div><div id='cbhtt'></div></div>
            <div class='cbs'></div>
            <div class='cbn'><div id='cb3'><span></span><?=$diff[6]?></div><div id='cb32'><span></span><?=$diff[7]?></div><div id='cbmt'></div></div>
            <div class='cbs'></div>
            
            
            
            </div>
 
 
                    <?php } else { ?>
                    <li>
                                    <h1>Время вышло!</h1>
                    </li>
                    <?php } ?>
Структура таблицы id, date, used
used - хотел сделать, чтобы после того как дата пройдет, сюда выставлялось мол использовано.


Подскажите как можно реализовать?
//P.S. PHP только начал учить, пока пишу только по некоторой аналогии с C++
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2014, 21:54
Ответы с готовыми решениями:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\php\mysql.php on line 16
Не могу подключиться к базе...устал все перепроверять переписывать и пересоздавать... Я недавно тока занялся php начал изучать курс...

Расписание на PHP
Может быть у кого либо есть готовые исходники по типу такого. Короче объяснить это довольно таки трудно, но я постараюсь. Скрип должен...

Расписание занятий php+mysql
Помогите реализовать чтоб для каждой группы генерировалась html таблица с расписанием: Группа1 Понедельник: пары Вторник: и т.д. ...

8
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
22.04.2014, 22:16
я делаю так:
извлечь сегодняшнюю дату из таблицы, если этой даты нет, то создать запись с этой датой
0
 Аватар для samarcs
0 / 0 / 2
Регистрация: 01.08.2012
Сообщений: 82
23.04.2014, 11:11  [ТС]
Возможно не так поняли, но суть в том, что нужно дату брать ближайшую к нынешней которая берется этой функцией new DateTime();и каждый раз счетчик переходил на следующую ближайшую дату. Вся проблема у меня выходит с реализацией, как писал ранее, туго с php пока что.

Добавлено через 55 минут
BvtyyВозникает такой вопрос, как сравнивать даты? ладно там 1 и 2 сравнить все ясно, а даты? if(date>now) не сработает?

Добавлено через 5 часов 51 минуту
В общем решил проблему) просто запрос решил посмотреть и подумать немного)
SQL
1
SELECT DATE FROM schedule WHERE(DATE > CURDATE()) ORDER BY DATE LIMIT 1
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
23.04.2014, 11:18
Какие у вас временные интервалы?
0
 Аватар для samarcs
0 / 0 / 2
Регистрация: 01.08.2012
Сообщений: 82
23.04.2014, 11:24  [ТС]
Временные интервалы разные. Когда пара суток, когда пара часов, в общем сейчас задался проблемой, нужно чтобы дата которая уже использована отмечалась в db как used="1", чтобы потом уже её не использовать и переходить на следующую ближайшую дату с used="0"

Запись должна помечаться used="1" только после двух часов после её начала, допустим дата 2014-01-10 14:00:00, то когда это время наступит через 2 часа т.е. в 16:00 становилась отметка used="1" и счетчик переходил на следующую дату
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
23.04.2014, 11:36
Лучший ответ Сообщение было отмечено samarcs как решение

Решение

SQL
1
2
UPDATE schedule SET used = 1 WHERE `date` < DATE_ADD(NOW(), INTERVAL 2 HOUR);
SELECT `date` FROM schedule WHERE used = 0 ORDER BY `date` LIMIT 1
1
 Аватар для samarcs
0 / 0 / 2
Регистрация: 01.08.2012
Сообщений: 82
23.04.2014, 11:43  [ТС]
Интервал не высчитывает, сразу used = 1 ставит, а так все в порядке
0
112 / 93 / 15
Регистрация: 03.10.2012
Сообщений: 315
23.04.2014, 11:49
Что значит "не высчитывает интервал"?
Первый запрос выставляет всем датам, которые меньше текущей + 2 часа used = 1. В этот запрос можете добавить еще условие used = 0
SQL
1
UPDATE schedule SET used = 1 WHERE `date` < DATE_ADD(NOW(), INTERVAL 2 HOUR) && used = 0;
Второй запрос вам достанет ближайшую неиспользованную дату. Если вам надо из этой даты вычленить интервал, сколько до нее осталось, используйте DateTime:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$db = new MySQLi('localhost', 'user', 'secret', 'dbName');
$query = "SELECT `date` FROM schedule WHERE used = 0 ORDER BY `date` LIMIT 1";
$res = $db->query($query);
$row = $res->fetch_row();
 
$targetDate = new DateTime($row[0]);
unset($row, $res, $query);
 
$now = new DateTime('now');
$diff = $now->diff($targetDate, true);
echo $diff->format('%d day(s) %H hour(s) %I minute(s) %S second(s) left');
unset($now, $targetDate, $diff);
1
 Аватар для samarcs
0 / 0 / 2
Регистрация: 01.08.2012
Сообщений: 82
23.04.2014, 11:52  [ТС]
UPDATE schedule SET used = 1 WHERE `date` < DATE_ADD(NOW(), INTERVAL -2 HOUR);
Решил проблему так вот)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2014, 11:52
Помогаю со студенческими работами здесь

Создать АИС "Расписание" с использованием PHP и MySQL
Мне необходимо создать АИС &quot;Расписание&quot;. МНе сказали можешь сделать с помощью mySQL на php. С чего начать создание? Аналоги в интернете...

Как изучать mysql и php? Сначала php, а потом mysql или наоборот, или сразу?
Хочу изучить mysql и php. Как их изучать? Сначала php, а потом mysql или наоборот, или сразу и то и то? Посоветуйте хорошую литературу.

Школьное расписание на PHP. Нужен скрипт составления таблицы.
Помогите пожалуйста, мне надо сделать программу составляющий расписание в школе, я создал базу данных, но теперь не могу составить таблицу?...

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Возникла проблема подключения к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Необходимо реализовать подключение к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru