mysql_fetch_array() expects parameter 1 to be resource
- 2 года назадПри выводе информации из таблицы MySQL выдает ошибку:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given
Вот мой код:$host = "localhost";
$username = "root";
$password = "";
$db_name = "test";
mysql_connect($host, $username, $password) or die("Ошибка подключения");
mysql_select_db($db_name) or die("Ошибка выбора БД");
$sql = "SELECT `tags`.`name`, `tags`.`s` as s, COUNT(`questions_tags`.`tags_id`) AS `posts_count` FROM `questions_tags` LEFT JOIN `tags` ON `questions_tags`.`tags_id`=`tags`.`id` GROUP BY `tags`.`id`";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo $row["name"];
}Ответов: 1 - 2 года назадЭта ошибка сообщает о том, что предыдущая функция, которая выполнил SQL запрос, окончилась неудачей, но при этом о причине неудачи никакой информации не несёт. Для отображения ошибки, нужно прописать что-то типа:
if ($result === false) {
echo mysql_error();
}
При использовании mysql_query(), всегда необходимо проверять результат ее работы. И если функция выдаст не корректный ответ, то в первую очередь необходимо, получить от mysql_error() сообщение об ошибке.
В вашем случае причину ошибки можно обнаружить:$host = "localhost";
$username = "root";
$password = "";
$db_name = "test";
mysql_connect($host, $username, $password) or die("Ошибка подключения");
mysql_select_db($db_name) or die("Ошибка выбора БД");
$sql = "SELECT `tags`.`name`, `tags`.`s` as s, COUNT(`questions_tags`.`tags_id`) AS `posts_count` FROM `questions_tags` LEFT JOIN `tags` ON `questions_tags`.`tags_id`=`tags`.`id` GROUP BY `tags`.`id`";
$result = mysql_query($sql);
if ($result === true) {
while($row = mysql_fetch_array($result))
{
echo $row["name"];
}
}else {
echo mysql_error();
}
Ваш ответ: