Проясните пожалуйста, сам понять вообще не могу. Имеется 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>
<?
}
$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,так как она возвращает только одну запись с результата запроса
SELECT p.id, p.text, u.name FROM posts p JOIN user u ON p.author = u.id
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости