2011-04-25 37 views
0

我想要計算特定的mem_id發生日期的數量,但是,我的計數輸出始終爲「0」...繼承人我的代碼:Mysql不計算從我的PHP腳本中的日期行

$datechecker = $postdate; 
//$postdate is a date variable that is posted via a form into mysql, stored as a DATE 

$sql = mysql_query("SELECT * FROM members WHERE mem_id='$id' AND postdate='$datechecker'"); 
$Counter = mysql_num_rows($sql); 
if($Counter >= 0) { 
echo "$datechecker $Counter"; 
exit(); 
} 

這是輸出我得到:2011-01-01 0

即使我有大約10個事件的2011-01-01,所以爲什麼我說的算「0」?任何人都可以幫我解決這個問題,或者提供一個備用?

+0

請說你正在逃避這些價值。 – cwallenpoole 2011-04-25 14:03:29

回答

0

echo你mysql_query之前的字符串它,這將驗證,如果查詢是你所期望的。你也可以在查詢中使用count(*),而不是使用php的mysql_num_rows()

我也希望你在查詢之前清理你的輸入!

0

1)您沒有清理$ postdate,誰知道它是否符合MySQL的DATE定義?

2)您沒有向我們展示您的會員表的樣子。是mem_id主鍵?如果是,那麼當然你會得到1行。 3)你不檢查你的查詢是否成功,你立即將resource_id傳遞給mysql_num_rows表 - 這是一種錯誤的方式來執行計數,因爲MySQL(像任何其他關係數據庫)有內置的機制根據標準對行進行計數。

我的猜測是你的查詢失敗,看到沒有指定$ id。