2013-02-05 20 views
1

我一直有這個錯誤「mysql_fetch_array()期望參數1是資源,當我試圖在sql中顯示count的返回值時給出的null爲」「。繼承我的代碼。如何顯示在SQL中計數返回的值

$query="SELECT med_rec_ID, COUNT(med_rec_ID) 
     FROM med_issue 
     WHERE MONTH(issue_date) = MONTH('2013-02-05') 
     GROUP BY med_rec_ID"; 
$result= mysql_query($query); 
while($count = mysql_fetch_array($display3)){ 
    echo $count[0]; 
} 

我試圖在sql中單獨運行查詢,它顯示2列(med_rec_ID和COUNT)。如何顯示計數並修復錯誤?

+0

可能是因爲資源被保存在$結果你得到的錯誤,你是在給mysql_fetch_array $ display3。可能你應該給mysql_fetch_array($ result)。 –

回答

0

給它一個別名:

SELECT 
    med_rec_ID, 
    COUNT(med_rec_ID) TheCount 
FROM med_issue 
where MONTH(issue_date) =  MONTH('2013-02-05') GROUP BY med_rec_ID 

,那麼你可以選擇while循環中該列TheCount$row['TheCount'],還使用通過$result大步慢跑:

$result = mysql_query($query); 

while($row = mysql_fetch_array($result)){ 
    echo $row['TheCount']; 
} 
+0

我仍然不斷收到該錯誤。我不知道什麼即時通訊做錯了查詢,這是可以的,當我單獨在sql中運行它。 – Cadz

+0

@Cadz直接運行這個查詢到MySQL,併發布你得到的錯誤。 –

+0

我已經在mysql中運行了查詢,我告訴過你了。它不會給出任何錯誤。 – Cadz

0

是您的查詢,甚至在執行?會發生錯誤,如果請求mysql_query犯規返回資源,如果查詢失敗

$query="SELECT med_rec_ID, COUNT(med_rec_ID) as C FROM med_issue where MONTH(issue_date) =  MONTH('2013-02-05') GROUP BY med_rec_ID"; 
$result= mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) 
    { 
    echo $row["C"]; 
    } 

注:請不要使用mysql_ *函數了

+0

我相信的其未正確執行,我不知道爲什麼。但是當我在sql頁面中單獨運行查詢時。它正確顯示我想要顯示的內容。 – Cadz

+0

運行該代碼應該顯示一個錯誤,這將有助於搞清楚 –

1

首先,因爲他們是不使用mysql_*功能棄用。使用mysqliPDO

其次,看你傳遞什麼到fetch_array功能。

你可能想這樣做:

$link = mysqli_connect("localhost", "admin", "pass", "db_name"); 
$result = mysqli_query($link, $sql); 
while($row = $result->fetch_array(MYSQLI_ASSOC)){ 
$medIds[] = $row['med_rec_ID']; 
... 
} 

然後給它一個別名修復計數。

請注意,您應該實際存儲您如何訪問DB以更安全的方式,但我用這只是爲了說明的例子。這裏是一個不錯的職位:How to create global configuration file?

相關問題