Tuesday, 28 June 2016

php - warning problem: expects parameter 1 to be mysqli_result











I get the following warning listed below and I was wondering how do I fix it



Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given on line 65


The code is around this section of PHP code listed below. I can list the full code if needed.



// 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)';
}
}

Answer



mysqli_query() returns FALSE if there was an error in the query. So you should test for it...



/* 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();
}


See this link for the mysqli_query reference
http://php.net/manual/en/mysqli.query.php


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...