Я получил следующую ошибку, указанную ниже, и задавался вопросом, как мне исправить эту проблему.
Not unique table/alias: 'grades'
Вот код, который, как мне кажется, дает мне проблему.
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; } }
Проблема, кажется, здесь:
SELECT COUNT(*) FROM grades JOIN grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = '$page'"
Вы пытаетесь присоединиться к табличным классам к себе. Вы, вероятно, хотели присоединиться к статьям article_grades.
Вам нужно использовать псевдоним, если вы используете одно и то же имя дважды:
SELECT FROM grades g1 ... JOIN grades g2 ON g1.id = g2.grade_id ...
Убедитесь, что вы намеревались использовать одно и то же имя дважды, и не ошибочно вводите одно и то же имя дважды.
это говорит о том, что, поскольку у вас есть оценки табличного имени в запросе дважды
Я худею, что в запросе $ sql2 вторая таблица не относится к классам, а article_grades. так это будет:
"SELECT COUNT(*) FROM grades JOIN articles_grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = '$page'"