Возможный дубликат:
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
вернулся из-за ошибки синтаксиса (ваша дата не цитируется).