Возможный дубликат:
mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в select
Я получил следующее предупреждение, перечисленное ниже, и мне было интересно, как его исправить
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given on line 65
Код находится вокруг этого раздела PHP-кода, приведенного ниже. При необходимости я могу указать полный код.
// function to retrieve average and votes function getRatingText(){ $dbc = mysqli_connect ("localhost", "root", "", "sitename"); $sql1 = "SELECT COUNT(*) FROM articles_grades WHERE users_articles_id = '$page'"; $result = mysqli_query($dbc,$sql1); $total_ratings = mysqli_fetch_array($result); $sql2 = "SELECT COUNT(*) FROM grades JOIN grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = '$page'"; $result = mysqli_query($dbc,$sql2); $total_rating_points = mysqli_fetch_array($result); if (!empty($total_rating_points) && !empty($total_ratings)){ $avg = (round($total_rating_points / $total_ratings,1)); $votes = $total_ratings; echo $avg . "/10 (" . $votes . " votes cast)"; } else { echo '(no votes cast)'; } }
mysqli_query()
возвращает FALSE
если в запросе была ошибка. Поэтому вы должны проверить это …
/* Select queries return a resultset */ if ($result = mysqli_query($dbc, "SELECT Name FROM City LIMIT 10")) { printf("Select returned %d rows.\n", $result->num_rows); /* free result set */ $result->close(); }
См. Эту ссылку для справки mysqli_query
http://php.net/manual/en/mysqli.query.php
Водопад, вероятно, прав. Измените код следующим образом:
$result = mysqli_query($dbc,$sql1) or die(mysqli_error($dbc)); // and $result = mysqli_query($dbc,$sql2) or die(mysqli_error($dbc));
PS: Просто интересно, что такое $page
? Вы забыли сделать:
global $page;