2012-12-28 21 views
0

我已經在服務器上傳了一個PHP腳本。它所做的是繼續讀取數據庫(mySQL),並且如果DATE_OF_MATCHTIME_OF_MATCH(這些是mySQL數據庫中的2個字段)等於服務器時間,它將執行一條消息。從mysql中匹配日期和時間 - 邏輯問題

字段表:都是從MATCHVARCHAR

ID, DATE_OF_MATCH, TIME_OF_MATCH, MATCH_NAME 

一個記錄;

1 , 1/12/2012, 3:40, ManU vs Kaks 

的問題是,我的選擇是錯誤的說法。我的$theDateAndTime正在返回09:15:03PM並且在數據庫中我有兩個單獨的日期和時間記錄。所以,我怎麼可以編輯選擇語句,這樣可以匹配對$theDateAndTime

代碼的日期和時間(由服務器返回):

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

mysql_select_db("my_db", $con); 
date_default_timezone_set('America/New_York'); 
$theDateAndTime = date("h:i:sA")."\n"; 



$result = mysql_query("SELECT * FROM MATCH where DATE_OF_MATCH=".$theDateAndTime." and TIME_OF_MATCH=".$theDateAndTime.""); 

while(true){ 
if(result!=null){ 

while($row = mysql_fetch_array($result)) 
    { 
    echo $row['MATCH_NAME'] ; 
    echo "<br />"; 
    } 
} 
} 

mysql_close($con); 
?> 
+0

你是不是在引用您的SQL參數,也不是你逃避它(不是'date'是要返回多少需要轉義)。另外:**單挑!** PHP的下一個主要版本是*棄用* mysql_'系列函數。現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。碰巧使用這些選項提供的參數化佔位符將完全避免你在這裏遇到的問題。 – Charles

+0

是否嘗試使用date(.theDateAndTime)和Time(。$ theDateAndTime)。 DATE()和TIME()是mysql函數。對不起,我不知道PHP,所以可能會有一些語法錯誤。參考http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html –

回答

0

我不明白你的問題非常好,但似乎您試圖在兩個不同的字段中查詢日期和時間,但是您只能使用當前時間。我想你應該嘗試這樣的事:

<?php 
$current_date = date('d/m/Y'); 
$current_time = date('h:i'); 

$result = mysql_query("SELECT * FROM MATCH where DATE_OF_MATCH=".$current_date." and TIME_OF_MATCH=".$current_time.""); 

否則,你不應該使用mysql_ *功能,使用mysqli_ *函數,而不是用準備好的語句。

0

爲日期和時間創建兩個單獨的變量。

$the_date = date("n/j/Y"); 
$the_time = date("h:i:s"); 

$result = mysql_query("SELECT * FROM MATCH where DATE_OF_MATCH={$the_date} and TIME_OF_MATCH={$the_time}"); 

http://us3.php.net/manual/en/function.date.php