2013-10-19 99 views
0

我使用下面的查詢:SQL查詢沒有給出任何結果在PHP

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01, 
       (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02, 
       (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03"; 
$result = mysql_query($query); 
print sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $F01,$F02); 

當我做在phpMyAdmin上面的查詢,它很好地顯示了變量與正確的結果值。但是,在PHP中執行相同的操作,不會顯示任何結果(空字符串)! mysql_errno()和mysql_error()不返回錯誤。數據庫已經打開並在代碼中進一步選擇。

任何想法是怎麼回事?

回答

1

因爲你沒有對結果做任何事情。

從文檔mysql_query()

返回的結果資源應該傳遞給mysql_fetch_array()等功能與結果表時,訪問返回的數據。

因此,檢索的結果,你可以使用如下一個while循環:

while ($row = mysql_fetch_assoc($result)) { 
    # code... 
} 
+0

那個伎倆,謝謝! – richey

+0

@richey:不客氣:) –

1

檢查$res=mysql_fetch_assoc($result);然後print_r();檢查結果。它會工作。

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01, 
       (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02, 
       (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03"; 
$result = mysql_query($query); 
$res=mysql_fetch_assoc($result); 
$res=$res[0]; 
sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $res['F01'],$res['F02']); 
+0

不幸的是,這仍然無法正常工作。 print_r()給出「1」作爲結果。在上面的幾行中,$ query =「SELECT count(*)FROM survey_ptw where ther ='J'」; $ result = mysql_query($ query); $ nr = mysql_result($ result,0);工作得很好。 : - / – richey