Запрос PHP / MySQL – если текущее время / дата в расписании

Я пытаюсь разработать простой график на основе php

Это моя таблица базы данных: введите описание изображения здесь

Предположим, что текущее время / дата: 2012-03-21 02:00:00

PHP-скрипт должен быть эхом: Meeting 2

У меня есть часть сценария, но не знаю, что делать дальше

 <?php $con = mysql_connect("localhost","root",""); if (!$con){die('Could not connect: ' . mysql_error());} mysql_select_db("schedule", $con); $current_time = date("Ymd H:i:s"); $result = mysql_query("SELECT * FROM events"); while($row = mysql_fetch_array($result)){ echo $row['Subject']; } mysql_close($con); ?> 

Как фильтровать запрос, обрабатывать текущее время и запланированный объект? Спасибо!

(если current_time находится между EndTime и EndTime – echo it's Subject )

Попробуйте этот запрос

 SELECT * FROM events WHERE NOW() BETWEEN StartTime AND EndTime 

EDIT проверил и удалил бесполезный лимит и порядок

Попробуйте select * from events where StartTime <= NOW() and EndTime >= NOW() NOW() предоставит вам текущее время в mysql.

Попробуйте выполнить следующий запрос.

 select * from events where current_time between startTime and endTime 

Ваш запрос должен понравиться

 $result = mysql_query("SELECT * FROM events WHERE current_time between startTime and endTime); 

Оператор mysql BETWEEN может быть полезен.

 $startDate = gmdate('Y/m/d/ H:i:s','2012-03-21 02:00:00'); $endDate = gmdate('Y/m/d/ H:i:s','2012-03-21 02:23:59'); $sql = 'select subject from events where startTime between "'.gmdate("Y/m/d H:i:s", $startDate) . '" and "' . gmdate("Y/m/d H:i:s", $endDate).'") '; 

Во-первых, вам нужно будет преобразовать StartTime и EndTime в метку времени, используя strtotime, чтобы вы могли сравнить ее с текущим временем (то же самое относится и к текущему времени):

http://php.net/manual/en/function.strtotime.php

Затем просто скажите, если current_time> StartTime AND current_time <EndTime echo Subject. Что-то вроде этого должно работать:

 while($row = mysql_fetch_array($result)){ $startTime = strtotime($row['StartTime']); $endTime = strtotime($row['StartTime']); if (strtotime($current_time) > $startTime && strtotime($current_time) < $endTime echo $row['Subject']; } 
 putenv("TZ=Asia/Calcutta"); // To Set TimeZone $now = date("Ymd H:i:s"); $sql = "select * from events where '$now' between StartTime and EndTime";