JOIN запрос из двух связанных таблиц

240
21 февраля 2018, 11:39

Проясните пожалуйста, сам понять вообще не могу. Имеется 2 таблицы, posts и user. posts имеет столбцы id text author, а user имеет id name. Столбец author связан с таблицей user. При выводе данных из posts в цикле мы получаем id пользователя, но как вывести name вместо id?

$res = mysqli_query($link,"SELECT * FROM post ");
$rows[] = mysqli_fetch_assoc($res);
foreach ($rows as $row){
    ?>
    <span><? echo $row['text'] ?></span><br>
    <span><? echo $row['author_id'] ?></span>
    <?
}
Answer 1
  $result = mysqli_query($link,"
    SELECT user.name, post.text 
    FROM post 
    INNER JOIN user ON post.author = user.id
  ");
  $str = '';
  while ($row = mysqli_fetch_assoc($result)) {
    $str .= '<span>' . $row['text'] . '</span><br>';
    $str .= '<span>' . $row['name'] . '</span><br>';
  }
  echo $str;

Нельзя генерировать строку вывода и выводить одновременно, нужно всегда стараться разделить эти части.

Неверно было использовано эту функцию mysqli_fetch_assoc,так как она возвращает только одну запись с результата запроса

Answer 2
SELECT p.id, p.text, u.name FROM posts p JOIN user u ON p.author = u.id
READ ALSO
Yii2 установить пустое значение

Yii2 установить пустое значение

Есть таблица deal, которая состоит из id, name, connect_dealПоследний столбец содержит id связанной строки этой же таблицы, если он есть

264
работа с запросами

работа с запросами

как этот запрос сунуть в ассоциативный массив со всеми полями

252
php шаблон, как сделать рендер?

php шаблон, как сделать рендер?

Просьба помочь разобраться с простеньким рендером шаблонаДля удобства весь код разместил в одном файле

269
description на google

description на google

ЗдравствуйтеМне просто интересно, каким образом google подставляет описания и ключевые слова

220