Ölümcül hata: Desteklenmeyen işlenen türleri

4 Cevap

Ben şu hatayı alıyorum ve bunu düzeltmek için nasıl merak tutun.

Fatal error: Unsupported operand types on line 97

Onun Aşağıda listelenen kod bu alanın çevresinde. Gerekirse ben tam kodu listeleyebilirsiniz.

PHP code

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

İşte Line 97 olduğunu

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

İşte tam kodudur.

function getRatingText(){
    $dbc = mysqli_connect ("localhost", "root", "", "sitename");

    $page = '3';

    $sql1 = "SELECT COUNT(*) 
             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 COUNT(*) 
             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;
    }

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

4 Cevap

$total_rating_points bir dizidir. Eğer sayısına göre bölmek olamaz.

(MySQL sorgusu beri düzenlenen soruya ilave edildi)

Adı bu bir dizi döndürür anlaşılacağı gibi, MySQL sizin sonuç almak için mysql_fetch_array kullandım. Diziler üzerinde böyle matematik yapamam.

Bunu için MySQL sorgusu değiştirmek istiyorsanız:

$sql1 = "SELECT COUNT(*) as count
         FROM articles_grades 
         WHERE users_articles_id = '$page'";

Bu için mysql_fetch_array kodu değiştirin:

 $total_rating_points = mysql_result($result, 0, "count");

İşte o zaman matematik için kullanabileceğiniz gerçek sayısını, dönecektir. Bu formata sorguları hem değiştirin ve gitmek için iyi olmalıdır.

array_sum() $total_rating_points ve $total_ratings kullanmak.