2014-10-27 135 views
-1

我對這個問題感到困惑,我正在通過php運行查詢。我希望這裏有人能幫我弄清楚發生了什麼問題。我想查詢一些數據並對其進行過濾,以便僅在查詢檢索當天的11:00:00之前和之前11:00:00之後添加的結果。似乎足夠基本。MySQL:WHERE查詢不能在PHP中工作;在MySQL中工作

所以我做了這個代碼(簡化版本):

$result = myql_query("SELECT id_order, date_add, firstname, lastname FROM orders 
WHERE date_add >= '" . $yesterday . " 11:00:00' AND date_add <= '" . $today . " 11:00:00';"); 

$today = date("Y-m-d"); 
$yesterday = date('Y-m-d', time()-86400); 

...但我給每一行,而不僅僅是那些日期和時間之間的人。這對我來說真的很奇怪的是,如果我回顯相同的$結果字符串,然後直接粘貼結果作爲mySQL查詢,它給了我所尋找的。

任何幫助搞清楚爲什麼這是不工作的PHP將不勝感激!

+0

爲我們提供'date_add'的實際值,我們無法讀懂你的想法。此外,這個確切的代碼甚至不會工作 - 這是不合理的簡化你的代碼。 – zerkms 2014-10-27 23:51:16

+1

順便說一句,爲什麼你在查詢後定義你的時間變量? – 2014-10-27 23:59:24

+0

對不起,@zerkms。 'date_add'的值是'2014-10-20 12:13:22,2014-10-25 15:13:48,2014-10-27 15:13:48'但Yohanes的問題給了我提示I需要弄清楚什麼是錯的。我需要在查詢之前定義的變量。咄!多謝你們! – 2014-10-28 00:20:23

回答

0

我還沒有嘗試過,但 試試這個

$today = date('Y-m-d'); 
$yesterday = date('Y-m-d', strtotime("yesterday")); 

$result = mysql_query('SELECT id_order, date_add, firstname, lastname FROM orders 
WHERE date_add BETWEEN "' . $yesterday . ' 11:00:00" AND "'. $today . ' 11:00:00"'); 

而且不要忘記,那些2個變量必須在查詢之前的文件中。

我希望這有助於

0

在查詢之前定義您的變量。

代碼應該是:

$today = date("Y-m-d"); 
$yesterday = date('Y-m-d', time()-86400); 

$result = myql_query("SELECT id_order, date_add, firstname, lastname FROM orders 
         WHERE date_add >= '" . $yesterday . " 11:00:00' AND 
           date_add <= '" . $today . " 11:00:00';"); 

注:始終打印您的查詢,如果您的查詢不給你預期的 結果。這會給你一個線索。

0

嘗試用 「BETWEEN」 操作。

+0

我真的很想爲你的答案投票,但你沒有提供一個例子。 – EternalHour 2014-10-28 05:01:07