Sunday 6 January 2019

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

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...