2012-03-21 8 views
2

であれば、私は単純なPHPベースのスケジュールを開発しようとしている...PHP/MySQLのクエリ - 現在の時刻/日付がスケジュール

これは私のデータベーステーブルです: enter image description here

のは、その電流を言ってみましょう時間/日付は次のとおりです。2012-03-21 02:00:00

PHPスクリプトがエコーする必要がありますMeeting 2

を、私は、スクリプトの一部が、何をすべきかは考えています現在の時刻とスケジュールされた主題をMACHし、クエリをフィルタ処理する方法次

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con){die('Could not connect: ' . mysql_error());} 
mysql_select_db("schedule", $con); 

$current_time = date("Y-m-d H:i:s"); 

$result = mysql_query("SELECT * FROM events"); 

while($row = mysql_fetch_array($result)){ 

    echo $row['Subject']; 
} 
mysql_close($con); 
?> 

?ありがとうございました!

current_timeStartTimeEndTimeの間にある場合 - それはSubjectだエコー)

答えて

7

はあなたのMySQLで現在の時間を与えるだろうselect * from events where StartTime <= NOW() and EndTime >= NOW() NOW()を試してみてください

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

なぜLIMIT 1? OPの例は、データセットに一致する結果が1つしかなかったため、1つの結果しか返しませんでした。 – liquorvicar

+0

完了!テストされ、確認されました!速い応答ありがとう! – enloz

+0

@liquorvicar私は質問編集の前にこれを書いた(または私は最後の行を読んでいない)。ただし、ORDER BYとLIMITは削除できます。あなたは正しいよ –

1

この文字列で検索してください。

1

select * from events where current_time between startTime and endTime 
1

次のクエリを試してみてくださいあなたのクエリは、BETWEEN演算子mysqlは、いくつかの使用であってもよい。この

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

が好きなはずです。

まず、あなたは(同じことは、現在の時間のために行く)あなたは、現在の時刻と比較することができますので、のstrtotimeを使用して、タイムスタンプにあなたのStartTimeと終了時間を変換する必要があるとしている
$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).'") '; 
0

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

次に、current_time> StartTimeと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']; 
} 
+0

Derpは、まずSQL文をやっているとは考えていませんでした。 – OneSneakyMofo

0
putenv("TZ=Asia/Calcutta"); // To Set TimeZone 
$now = date("Y-m-d H:i:s"); 
$sql = "select * from events where '$now' between StartTime and EndTime"; 
関連する問題