Возможный дубликат:
Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым результатом MySQL
Я действительно зациклился на этом, я получаю эту ошибку: mysql_fetch_assoc (): предоставленный аргумент не является допустимым ресурсом результата MySQL в «filename»,
Вот код:
$sql = "SELECT * FROM $tbl_name WHERE.... $result=mysql_query($sql); $row = mysql_fetch_assoc($result);
Самое странное, что я использовал тот же самый код раньше, и он отлично работал
Есть идеи??
Это означает, что запрос завершился неудачно. Обычно это синтаксическая ошибка SQL. Чтобы узнать это, просто вставьте это прямо перед линией _fetch_assoc:
print mysql_error();
Чтобы предотвратить сообщение об ошибке, структурируйте свой код, как это, чтобы проверить результат $ заранее:
$sql = "SELECT * FROM $tbl_name WHERE...."; if ($result = mysql_query($sql)) { $row = mysql_fetch_assoc($result); } else print mysql_error();
Всегда запускайте все ваши запросы таким образом
$sql = "SELECT * FROM $tbl_name WHERE...."; $res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql); $row = mysql_fetch_assoc($result);
И вы будете уведомлены о причине ошибки.
Но никогда не печатайте и не позволяйте die () выводить какие-либо ошибки , так как это недостаток безопасности.
Эта ошибка обычно возникает из-за того, что из запроса не возвращаются данные. Убедитесь, что данные возвращаются, перейдя в нечто вроде PHPMyAdmin и убедившись, что запрос возвращает несколько строк. Вы также должны добавить
or die(mysql_error());
В конце вашего запроса.