Ответ 1
$total_ratings
- это массив, который нельзя использовать для разделения.
Сверху:
$total_ratings = mysqli_fetch_array($result);
Я продолжаю получать следующую ошибку, и мне было интересно, как это исправить?
Это второй раз, когда я получил эту ошибку, я исправил ее в первый раз, но по какой-то причине я не могу исправить ее во второй раз.
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);