2013-10-10 20 views
0

我試圖運行SQL查詢,然後顯示在一個表中的結果麻煩。這是我使用經與mysql_fetch_assoc()函數

$sql = "SELECT * FROM mt.o_details WHERE cusid = '$cusid[$j]' AND type ='$type'"; 
    $result = mysql_query($sql); 
    while($row = mysql_fetch_assoc($result)) 
    { 
      ......... 
     } 

,我不斷收到是

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in......

我也呼應了$ sql命令,然後手動運行它作爲一個SQL查詢錯誤代碼和查詢返回預期排,因此是成功的。所以我不知道爲什麼我得到這個警告,並且當我運行腳本時行數組是空的。

+0

您的查詢不執行,並返回一個錯誤。 –

+0

在執行之前,放入'echo $ sql;'。問題可能會變得明顯,變量爲空或列名稱不正確。 – Fluffeh

+0

@Hanky웃Panky請再次閱讀這個問題,我已經檢查過,當我在mysql命令提示符下手動輸入查詢時,查詢正在運行。回聲的$ SQL變量出來是'SELECT * FROM mt.o_details WHERE cusid =「6」和type =「Shirt''並運行此查詢,我得到預期的行,所以我想,我們可以得出結論,查詢部分是好的 –

回答

1

如果您的查詢沒有返回任何結果或 mysql_query失敗,可以使用mysql_error()來查找錯誤。

$result = mysql_query($sql) or die(mysql_error()); 
0

使用下面的代碼,以避免錯誤:

$sql = "SELECT * FROM mt.o_details WHERE cusid = '$cusid[$j]' AND type ='$type'"; 
$result = mysql_query($sql); 
if(mysql_num_rows($result) > 0){ 
    while($row = mysql_fetch_assoc($result)) 
    { 
     ......... 
    } 
} 

使用mysql_num_rows獲得該查詢返回了一些成績還是不行。

NOTE: don't use the mysql_* as it has been deprecated. Use the PDO or mysqli_*.