Intereting Posts
Каков самый простой способ перенаправления на предыдущую страницу с помощью PHP? Laravel отношения на столе с двумя типами флагов Codeigniter Active Record – количество найденных строк с ограничением (MySQL) Сообщение об ошибке при отправке формы PHP с пустыми полями Одиночный маршрут Laravel для нескольких контроллеров Несколько пространств имен в одном модуле в ZF2 Есть ли разумный способ запуска нескольких запросов в mysql, разделенных точкой с запятой; Laravel – обновлять несколько записей с разными значениями «Mysqli_real_escape_string» достаточно, чтобы избежать SQL-инъекций или других SQL-атак? Слишком много данных с var_dump в symfony2 doctrine2 Возможно ли, чтобы параметр $ _SERVER не был установлен? требуется обновление для запроса mysql для выбора диапазона дат для бронирования гостиничного номера или любой вещи Где я могу изучить веб-программирование от начала до мастерства? Как хранить и извлекать текстовые данные в MySQL, сохраняя разрывы строк? Как получить значение столбца в pagination

MySQL и PHP – Не уникальная таблица / псевдоним

Я получил следующую ошибку, указанную ниже, и задавался вопросом, как мне исправить эту проблему.

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; } } 

Solutions Collecting From Web of "MySQL и PHP – Не уникальная таблица / псевдоним"

Проблема, кажется, здесь:

 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'"