У меня есть набор запросов, где я выводящие комментарии, которые связаны с должностями, а также с указанием пользователя, который разместил комментарий с помощью этого запроса:Получить информацию о пользователе из таблицы пользователей
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, j.id, u.user_id
FROM forum_post AS p
INNER JOIN comment_post_join AS j ON p.post_id = j.post_id
INNER JOIN forum_comment AS f ON f.comment_id = j.comment_id
INNER JOIN user_comment_join AS u ON u.user_id = u.user_id
WHERE p.post_id = '$id'
ORDER BY created_date ASC
";
$r = mysqli_query ($dbc, $q); // Run the query.
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_array($r)) {
echo '
<div style="border-bottom: thin solid #ddd;">
<p style="font-size: 13px;">'.$row["comment_content"] . '</p>
<p style="font-size: 12px;">By: <a href="user_view.php?id=' . $row["user_id"] . '">'.$row["user_id"] . '</a> ' .date("F j, Y, g:i a", strtotime($row["created_date"])). '</p>
</div>
';
}
Как вы можете видеть конец результат выводит комментарий, а также user_id, но если я поинт u.first_name, например, он не дает мне выход. В моем выше он выведет идентификатор пользователей, который опубликовал, но изо всех сил пытается получить свое имя.
У меня есть эти таблицы:
users
user_id
first_name
last_name
comment_post_join
comment_id (Fk)
post_id (Fk)
user_comment_join
user_id (Fk)
comment_id (Fk)
user_post_join
user_id (Fk)
post_id (Fk)
forum_post
post_id
post_title
post_content
post_created
post_topic
forum_comment
comment_id
comment_content
created_date
UPDATE
function build_post_view(){
global $dbc;
$id = $_GET['post_id'];
$q = "SELECT u.user_id, u.first_name, u.last_name, f.post_created, f.post_id, f.post_title, f.post_content, j.id
FROM users AS u
INNER JOIN user_post_join AS j ON u.user_id = j.user_id
INNER JOIN forum_post AS f ON f.post_id = j.post_id
WHERE f.post_id = '$id'
";
$r = mysqli_query ($dbc, $q); // Run the query.
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_array($r)) {
echo '
<div style="border-bottom: thin solid #ddd;">
<h3>'.$row["post_title"]. '</h3>
<p style="font-size: 13px;">By: <a href="user_view.php?id=' . $row["user_id"] . '">'.$row["first_name"] . ' ' .$row["last_name"]. '</a> ' .date("F j, Y, g:i a", strtotime($row["post_created"])). '</p>
<br>
<p style="font-weight: 500; line-height: 150%;">' . $row["post_content"] . '</p>
<br><br>
</div>
';
}
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, j.id, u.user_id, u.first_name, u.last_name
FROM forum_post AS p
INNER JOIN users AS us ON us.user_id = u.user_id
INNER JOIN comment_post_join AS j ON p.post_id = j.post_id
INNER JOIN forum_comment AS f ON f.comment_id = j.comment_id
INNER JOIN user_comment_join AS u ON u.user_id = u.user_id
WHERE p.post_id = '$id'
ORDER BY created_date ASC
";
$r = mysqli_query ($dbc, $q); // Run the query.
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_assoc($r)) {
echo '
<div style="border-bottom: thin solid #ddd;">
<p style="font-size: 13px;">'.$row["comment_content"] . '</p>
<p style="font-size: 12px;">By: <a href="user_view.php?id=' . $row["user_id"] . '">'.$row["user_id"] . ' '.$row["first_name"] . ' '.$row["last_name"] . '</a> ' .date("F j, Y, g:i a", strtotime($row["created_date"])). '</p>
</div>
';
}
}
Не могли бы вы предоставить структуру базы данных 'forum_post'? –
Только что обновил мой Q – PhpDude
Как вы подключаете пользователя и 'forum_post'? Для их подключения вам понадобится поле user_id в вашей таблице «forum_post». Подобно тому, как у вас есть таблица 'comment_post_join' для подключения комментария к сообщению. –