За последние 24 часа нас посетил 22681 программист и 1041 робот. Сейчас ищут 595 программистов ...

Проблема вывода на экран выборки INNER JOIN

Тема в разделе "PHP для новичков", создана пользователем konigwolf, 4 май 2022.

  1. konigwolf

    konigwolf Новичок

    С нами с:
    2 май 2022
    Сообщения:
    11
    Симпатии:
    0
    Добрый вечер. Столкнулся с такой проблемой. Хотел вывести данные из двух совмещенных таблиц при помощи INNER JOIN но увы не получилось. Пожалуйста помогите найти косяк. Целый день уже бьюсь:(
    Код (Text):
    1. function inner($connect){
    2.     try{
    3.        $sql = "SELECT `teacher.name`, `lesson.less` FROM `teacher` INNER JOIN `lesson` ON 'teacher.id' = 'lesson.teacher_id'";
    4.        $prepare = $connect->prepare($sql);
    5.        $prepare->execute();
    6.          while($daster = $prepare->fetch(PDO::FETCH_ASSOC)){
    7.          $result = "<ol><li>Имя преподавателя: ".$daster['name']." Предмет: ".$daster['lesson']."</li></ol>";        
    8.          echo $result;
    9.          }  
    10.     }catch(PDOException $e){
    11.         echo"Ошибка подключения".$e->getMessage();
    12.     }
    13. }
    14. echo inner($connect);
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Кавычки после ON неправильные. И в целом в составных именах составляющие нужно брать в отдельные кавычки, т.е. после SELECT тоже неправильно.

    И здесь INNER JOIN – скорее всего из пушки по воробьям. По идее нужен LEFT JOIN.
     
    yuri нравится это.
  3. konigwolf

    konigwolf Новичок

    С нами с:
    2 май 2022
    Сообщения:
    11
    Симпатии:
    0
    Большое спасибо. Вопрос решил.
    PHP:
    1. function inner($connect){
    2.     try{
    3.        $sql = "SELECT teacher.name, lesson.less FROM teacher INNER JOIN lesson ON teacher.id = lesson.teacher_id";
    4.        $prepare = $connect->prepare($sql);
    5.        $prepare->execute();
    6.          while($daster = $prepare->fetch(PDO::FETCH_BOTH)){
    7.          $result = "<ol><li>Имя преподавателя: ".$daster['name']." Предмет: ".$daster['less']."</li></ol>";        
    8.          echo $result;
    9.          }  
    10.     }catch(PDOException $e){
    11.         echo"Ошибка подключения".$e->getMessage();
    12.     }
     
  4. konigwolf

    konigwolf Новичок

    С нами с:
    2 май 2022
    Сообщения:
    11
    Симпатии:
    0
    Понятно. Просто не совсем понял, что Вы имели ввиду. Теперь разобрался. Спасибо!!!