2014-01-21 46 views
1

警告: mysql_fetch_assoc()預計參數1是資源,布爾在C中給出:\ XAMPP \ htdocs中\阿森納網站\ ArsenalTables.php上線104SQL查詢錯誤?

我有一個相當類似的查詢,實際上它的同與不同的變量名稱工作,我不明白爲什麼這不工作?

$customtable_query = "SELECT * FROM `arsenaltable`\n" . "ORDER BY `arsenaltable`.`points` DESC LIMIT 0, 30 "; 

$customtable_result = mysql_query($customtable_query); 

while ($customtable_row = mysql_fetch_assoc($customtable_result)) 
{     
    $played = $customtable_row['played']; 
    echo $played; 
} 
+0

而不是*在查詢中明確指定您的字段列表 –

+0

爲什麼您的SQL查詢中有換行符?這只是乞求麻煩。 – christopher

+2

對於調試,你最好把'mysql_query()或者die(mysql_error())'放在你的代碼中。你爲什麼要在查詢中放入'\ n'?刪除這個。此外,mysql_ *被棄用,而是使用mysqli_ *或PDO。編輯:並在你的表名和'ORDER BY'之後放一個空格 – GuyT

回答

1
  1. 除去不必要的單引號(它們通常用於不值列名)。
  2. 刪除換行符

    $customtable_query = "SELECT * FROM arsenaltable ORDER BY arsenaltable,points DESC LIMIT 0, 30 "; 
    
    $customtable_result = mysql_query($customtable_query); 
    
    while ($customtable_row = mysql_fetch_assoc($customtable_result)) { 
    
        $played = $customtable_row['played']; 
        echo $played; 
    
    } 
    

希望這有助於!

  • 不是直接的解決方案相關,但請求mysql_query已被棄用,這是更好地使用mysqli_query代替(甚至更好,我的口味,PDO)。
+0

謝謝但是我仍然得到相同的錯誤,因爲以前有什麼主要原因,爲什麼布爾值將爲false – user3218336

+0

我不知道,你的數據庫實際上是否包含表和是填充數據?您是否嘗試直接在phpMyAdmin中運行查詢並查看結果?嘗試用mysql_error()進行調試。此外 - mysql_query已被棄用,請改用mysqli_query。 – Yani

+0

user3218336它解決了你的錯誤嗎? – Yani

1

你可能會想看看mysql_error()的具體錯誤。 你的mysql_query()調用返回false,這就是爲什麼錯誤說mysql_fetch_assoc()中的參數是一個布爾值。

0

同時在mysql_query中傳遞連接變量。希望這可以幫助。

$con=mysql_connect("localhost", "root","password"); 
$customtable_query = "SELECT * FROM `arsenaltable`\n" . "ORDER BY `arsenaltable`.`points` DESC LIMIT 0, 30 "; 

$customtable_result = mysql_query($customtable_query,$con); 

while ($customtable_row = mysql_fetch_assoc($customtable_result)) 
{     
$played = $customtable_row['played']; 
echo $played; 
}