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

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

22.04.2014, 21:54. Показов 2740. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru