MySQL &

4 Cevap php

Ben aşağıda listelenen aşağıdaki hatayı alıyorum ve ben bu sorunu çözmek nasıl merak ediyordum.

Not unique table/alias: 'grades'

İşte bana sorun veriyor düşünüyorum kodudur.

function getRating(){
$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 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)){
// set the width of star for the star rating
$rating = (round($total_rating_points / $total_ratings,1)) * 10; 
echo $rating;
} else {
    $rating = 100; 
    echo $rating;
}
}

4 Cevap

Burada sorun gibi görünüyor:

SELECT COUNT(*) 
FROM grades 
JOIN grades ON grades.id = articles_grades.grade_id
WHERE articles_grades.users_articles_id = '$page'"

Sen kendine tablo notları katılmaya çalışıyoruz. Muhtemelen articles_grades ile katılmak gerekiyordu.

Eğer iki kez aynı adı kullanarak eğer bir takma ad kullanmanız gerekir:

SELECT FROM grades g1 ... 
JOIN grades g2 ON g1.id = g2.grade_id ...

Eğer intended iki kez aynı adı kullanmak, ve yanlışlıkla iki kez aynı adı girmediniz emin olun.

Eğer iki sorguda tablo adı notları var çünkü o diyor

Ben $ SQL2 sorguda ikinci tablo sınıflarda ama article_grades ince değildir. öyle olacak:

"SELECT COUNT(*) 
         FROM grades 
         JOIN articles_grades ON grades.id = articles_grades.grade_id
         WHERE articles_grades.users_articles_id = '$page'"