За последние 24 часа нас посетили 20449 программистов и 1101 робот. Сейчас ищут 774 программиста ...

Вывод значений из двух таблиц

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

Метки:
  1. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Доброго времени суток. Существует две таблицы user и income. В таблице user два поля: id и name(имя человека). В income много полей и одно - author, где хранится id человека из таблицы user. Вопрос, как вывести вместо номера id, соответствующее этому id имя из другой таблицы?
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Это простейшее объединение таблиц (гугли join mysql и alias mysql)
    SELECT `i`.*, `u`.`name` FROM `income` AS `i` LEFT JOIN `user` AS `u` USING(`id`)
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    сорь не так, а вот так
    Код (Text):
    1. SELECT `i`.*, `u`.`name` FROM `income` AS `i` LEFT JOIN `user` AS `u` ON `i`.`author` = `u`.`id`
     
  4. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Окей спасибо
     
  5. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    А если я вывожу данные из одной таблицы через sql запрос, то мне нужно создать отдельную переменную для смены значений и в выводе таблицы подставить её, правильно понимаю?
     
    #5 KevinSmash, 16 май 2019
    Последнее редактирование: 16 май 2019
  6. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    через SQL запрос вы ничего никуда не выводите, запрос говорит БД что нужно сделать выборку и сохранить её в буфере сервера базы данных, далее по средствам РНР операторов и драйвера работы с БД вы получаете данные в том виде в каком вам удобно, либо целиком, либо построчно.
    нужно просто почитать книжек :)
     
  7. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Видимо в книге я не дошел до таких моментов( Просто сейчас мне возвращается пустое значение и поле остается пустым. Хотя всё вроде также сделал
     
  8. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    название книги "в студию" и показувай код :)
     
  9. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    PHP 7 в подлиннике + куры Хекслета. Я недавно начал изучать, появилась такая потребность в от и спрашиваю как её реализовать.
    Сам код вывода таблцы:
    Код (Text):
    1. <?php
    2.     $user = mysql_query("SELECT `i`.*, `u`.`name` FROM `income` AS `i` LEFT JOIN `jos.user` AS `u` ON `i`.`author` = `u`.`id`");
    3.     if(isset($data)) {
    4.          $result = mysql_query("SELECT * FROM `income_expense_history` WHERE DATE(`time`) = \"$data\" ");
    5.      }else{
    6.          $result = mysql_query("SELECT * FROM income_expense_history  WHERE DATE(`time`) = \"$date\"");
    7.                     }
    8.     if (!$result) {
    9.         die('Неверный запрос: ' . mysql_error());
    10.                     }
    11. /$result - ассоциированный массив, т.е. таблички, у которой есть названия столбцов
    12.  
    13.  //узнаем, сколько в массиве $result строчек
    14.                     $n=mysql_num_rows($result);
    15.                  
    16.                     //вывод на страничку в виде таблицы
    17.                     echo "<table border=1 cellspacing=0 cellpadding=2 style=width: 75% align=center>
    18.                        
    19.                                 <tr>
    20.                                     <th>Время</th>
    21.                                     <th>Приход</th>
    22.                                     <th>Расход</th>
    23.                                     <th>Комментарий</th>
    24.                                     <th>Ответственный</th>
    25.                                 </tr>";
    26.  
    27.  
    28.                     //вывод построчно
    29.                     for($i=0;$i<$n;$i++)
    30.                         echo
    31.                         "</td><td>",mysql_result($result,$i,time),
    32.                         "</td><td>",mysql_result($result,$i,income),
    33.                         "</td><td>",mysql_result($result,$i,expense),
    34.                         "</td><td>",mysql_result($result,$i,comment),
    35.                         "</td><td>",mysql_result($user,$i, name),
    36.                         "</td></tr>";
    37.                     echo "</table>";
    38.  
    39.                     ?>
     
  10. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Изучать РНР и работать над реальным проектом, это то же самое как делать ремонт там где живёшь. И в том и в другом случае "поуши в говне". Тем паче, что работу с БД необходимо изучать практически в отрыве от РНР (РНР нужен только для вывода результата обучения в браузер).
     
  11. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Это небольшой проект который нужен для реальных задач. Теория это хорошо, но получая реальную задачу и справляясь с ней, мне кажется будет двойная польза
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    @KevinSmash, и что, в книге "PHP 7 в подлиннике" используют для работы с базами данных функции mysql_*, которых в PHP 7 уже нету?
    Не-а, совершенно бесполезно пытаться решать не учебные задачи, пока не владеешь инструментом.
    --- Добавлено ---
    Код даже комментировать не буду....
     
  13. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Но сайт на php 5, так что в этом есть проблема. ЧТож жаль, буду овладевать инструментом
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    @KevinSmash, mysql_* не рекомендованы ещё во времена php 5.4, с 5.6 ругаются deprecated.

    Я как раз начинал php изучать, когда 5.3 доживала, застал переход.
     
  15. KevinSmash

    KevinSmash Новичок

    С нами с:
    13 май 2019
    Сообщения:
    17
    Симпатии:
    0
    @mkramer, хорошо, буду изучать тогда всё для начала. Спасибо