PHP – Неустранимая ошибка: неподдерживаемые типы операндов

Я продолжаю получать следующую ошибку, и мне было интересно, как это исправить?

Это второй раз, когда я получил эту ошибку, я исправил ее в первый раз, но по какой-то причине я не могу исправить ее во второй раз.

Fatal error: Unsupported operand types on line 103 

Вот строка 103.

 $avg = (round($total_rating_points / $total_ratings,1)); 

Ниже приведен полный код.

 function getRatingText(){ $dbc = mysqli_connect ("localhost", "root", "", "sitename"); $page = '3'; $sql1 = "SELECT COUNT(users_articles_id) FROM articles_grades WHERE users_articles_id = '$page'"; $result = mysqli_query($dbc,$sql1); if (!mysqli_query($dbc, $sql1)) { print mysqli_error($dbc); return; } $total_ratings = mysqli_fetch_array($result); $sql2 = "SELECT grade_points FROM grades JOIN articles_grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = '$page'"; $result = mysqli_query($dbc, $sql2); if (!mysqli_query($dbc, $sql2)) { print mysqli_error($dbc); return; } while($row = mysqli_fetch_array($result)) { $trp[] = $row[0]; } $total_rating_points = array_sum($trp); 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)'; } } 

$total_ratings – это массив, который нельзя использовать для разделения.

Сверху:

 $total_ratings = mysqli_fetch_array($result); 

$total_ratings – это массив.

У меня была аналогичная ошибка со следующим кодом:

 foreach($myvar as $key => $value){ $query = "SELECT stuff FROM table WHERE col1 = '$criteria1' AND col2 = '$criteria2'"; $result = mysql_query($query) or die('Could not execute query - '.mysql_error(). __FILE__. __LINE__. $query); $point_values = mysql_fetch_assoc($result); $top_five_actions[$key] += $point_values; //<--- Problem Line } 

Оказалось, что моя переменная $ point_values ​​иногда возвращала false, что вызвало проблему, поэтому я исправил ее, обернув ее в mysql_num_rows check: –

 if(mysql_num_rows($result) > 0) { $point_values = mysql_fetch_assoc($result); $top_five_actions[$key] += $point_values; } 

Не уверен, что это помогает?

ура

Я думаю, вы хотите это сделать:

 $total_rating_count = count($total_rating_count); if ($total_rating_count > 0) // because you can't divide through zero $avg = round($total_rating_points / $total_rating_count, 1);