Как исправить эту ошибку «mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в«?

Возможный дубликат:
mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в select

Ошибка…

Предупреждение: mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean указан в /home/andar/public_html/sistema/admin/cron.php в строке 19

$hoje = strtotime(date("dmY")); $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(); 

$query используется до момента while и внутри while … Измените имя переменной на $query2 , например:

 $hoje = strtotime(date("dmY")); $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(); 

Надеюсь, поможет.

Чтобы гарантировать, что пока выполняется только выполнение запроса, вы можете написать:

 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 вы не хотите читать никаких результатов. И вы все равно проверяете outcoume с or die .

Вероятно, ваш mysql_query вернулся из-за ошибки синтаксиса (ваша дата не цитируется).