использование JOIN в mysqli возвращает результат только из одной таблицы - PullRequest
0 голосов
/ 15 марта 2020

Я сейчас пытаюсь распечатать результат объединения двух таблиц с помощью mysqli. но каждый раз, когда я пытаюсь это сделать, он возвращает результат только из одной таблицы, в то время как таблица, к которой он присоединяется, не возвращает никакого результата

ниже приведен код, который показывает данные в таблицу

    foreach($db->showdata() as $x) {
    					
          if($x['role_id'] == 1 || $x['role_id'] == 2) continue;
          $id = $x['user_id'];
          echo "<tr>";
          echo "<td>" . $x['user_id'] . "</td>";
          echo "<td>" . $x['first_name'] ." ". $x['last_name']. "</td>";
          echo "<td>" . $x['nilai_tugas'] . "</td>";
          echo "<td>" . $x['nilai_uts'] . "</td>";
          echo "<td>" . $x['nilai_uas'] . "</td>";
          echo "</tr>";
                    }

, в то время как эта функция вызывается showdata ()

function showdata(){
$data = mysqli_query($this->db, "SELECT * FROM user LEFT OUTER JOIN grade ON(user.user_id = grade.user_id) IS NOT NULL;");
while($d = mysqli_fetch_array($data)){
  $hasil[] = $d;
}
return $hasil;
}

Структура таблицы:

Пользователь: user_id, first_name, last_name и другие столбцы, не относящиеся к этой части

Grade: user_id, nilai_tugas, nilai_uts, nilai_uas

когда я запускаю код, он возвращает

Примечание: неопределенный индекс: nilai_tugas Примечание: неопределенный индекс: nilai_uts Примечание: неопределенный index: nilai_uas

, который взят из таблицы оценок, но данные из пользовательской таблицы проходят через go и отображаются на странице. Результат страницы

Когда я запускаю запрос в mysql, он возвращает все запрошенные данные, но не возвращает данные в функции.

Заранее спасибо.

Редактировать: Я попытался переместить запрос выбора на ту же страницу, и он работает, он просто не работает, когда я использую функцию возврата из функции ( что является обязательным).

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Я не до конца знаю, что произошло, поэтому я попытался переустановить xampp, и он наконец начал работать, проблема может быть в файле конфигурации mysql (не в первый раз, когда это случается со мной).

0 голосов
/ 15 марта 2020

Можете ли вы попытаться более четко выбрать столбцы?

mysqli_query($this->db, "SELECT user.columnname, grade.columnname FROM user LEFT OUTER JOIN grade ON(user.user_id = grade.user_id) IS NOT NULL;");

А вы уверены, что колонка в пользователях называется user_id? Поскольку результирующий набор имеет имя столбца studentID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...