2011-04-06 61 views
1

可能重複:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select如何解決這個錯誤「mysql_fetch_assoc()期望參數1是資源,布爾在」?

錯誤...

警告:mysql_fetch_assoc()預計 參數1是資源,布爾 在 給出/ home/andar/public_html/sistema/admin/cron.php on線19

$hoje = strtotime(date("d-m-Y")); 

    $db = new DBConfig(); 
    $db -> config(); 
    $db->conn(); 
    $query = mysql_query("SELECT * FROM products WHERE auto_pub = ".$hoje) or die(mysql_error()); 

    while($res = mysql_fetch_assoc($query)) { 
     $query = mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
    } 

    $db->close(); 
+6

我不完全確定問題是什麼,但無論如何,你正在覆蓋循環內的'$ query'。這是不好的 – 2011-04-06 19:33:14

+0

是的,儘管它沒有走得這麼遠。 – 2011-04-06 19:34:03

+0

@Pekka謝謝,這是問題:) – Hbug 2011-04-06 19:35:57

回答

2

$querywhile之前使用和while內...更改變量的名稱$query2,例如:

$hoje = strtotime(date("d-m-Y")); 

$db = new DBConfig(); 
$db -> config(); 
$db->conn(); 
$query = mysql_query("SELECT * FROM products WHERE auto_pub = ".$hoje) or die(mysql_error()); 

while($res = mysql_fetch_assoc($query)) { 
    $query2 = mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
} 

$db->close(); 

希望它能幫助。

+0

謝謝你的幫助! :-) – Hbug 2011-04-06 19:37:27

0

也許,你mysql_query返回false由於語法錯誤(您的日期沒有加引號)。

2

爲了確保當查詢成功,你可以寫,而只有執行:

if ($query) 
while($res = mysql_fetch_assoc($query)) { 
    mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
} 

通知的情況下內環路$query=分配。對於UPDATE,你不想讀取任何結果。無論如何,你正在檢查or die

相關問題