2010-01-21 82 views
14

Tôi tiếp tục nhận được lỗi sau và tôi đã tự hỏi cách khắc phục?PHP - Lỗi nghiêm trọng: Các loại toán hạng không được hỗ trợ

Đây là lần thứ hai tôi nhận được lỗi này Tôi đã khắc phục nó lần đầu tiên nhưng vì một lý do nào đó tôi không thể khắc phục nó lần thứ hai.

Fatal error: Unsupported operand types on line 103 

Đây là dòng 103.

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

Dưới đây là toàn bộ mã dưới đây.

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

Tôi nghĩ rằng tôi vừa giải quyết nó cảm ơn tất cả mọi người! – tEcHnUt

+6

Quên mật khẩu vào tài khoản trước của bạn? xem http://stackoverflow.com/questions/2077618/php-fatal-error-unsupported-operand-types và http://stackoverflow.com/users/252134/technut – VolkerK

Trả lời

41

$total_ratings là mảng mà bạn không thể sử dụng để chia.

Từ trên:

$total_ratings = mysqli_fetch_array($result); 
0

Tôi đoán bạn muốn làm điều này:

$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); 
2

Tôi đã có một lỗi tương tự với đoạn mã sau: -

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  
} 

Hóa ra là biến $ point_values ​​tôi đã thỉnh thoảng trở về sai đó gây ra vấn đề vì vậy tôi cố định nó bằng cách gói nó trong mysql_num_rows kiểm tra: -

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

Không chắc chắn nếu điều này giúp mặc dù?

Chúc mừng

Các vấn đề liên quan