Php 正在从另一个表收集用户信息
我目前有一个查询集,用于选择与特定帖子关联的评论。我还需要选择针对该帖子提交评论的用户详细信息。我在这里有点挣扎,需要一些建议 以下是我当前的查询:Php 正在从另一个表收集用户信息,php,mysql,Php,Mysql,我目前有一个查询集,用于选择与特定帖子关联的评论。我还需要选择针对该帖子提交评论的用户详细信息。我在这里有点挣扎,需要一些建议 以下是我当前的查询: $q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, j.id FROM forum_post AS p INNER JOIN comment_post_join AS j ON p.post_i
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, j.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
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;">' .date("F j, Y, g:i a", strtotime($row["created_date"])). '</p>
</div>
';
}
我希望我已经在这里解释了我的问题,任何建议都会很好
我自己也这样尝试过…:
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, u.user_id, u.first_name, u.last_name, j.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 cj ON u.user_id = cj.user_id
WHERE p.post_id = '$id'
ORDER BY created_date ASC
";
但我得到了以下错误:
警告:mysqli_fetch_array()希望参数1是mysqli_结果,在第963行的C:\MAMP\htdocs\functions\functions.inc.php中给出布尔值
这反过来又指这一行…:
while($row=mysqli\u fetch\u数组($r)){
如果在phpmyadmin中运行此查询,则会得到以下结果:
字段列表中的未知列“u.user\u id”
您忘记了加入用户表。请尝试以下操作:
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, u.user_id, u.first_name, u.last_name, j.id
FROM forum_post AS p
INNER JOIN comment_post_join AS j ON p.post_id = j.post_id
INNER JOIN users AS u ON u.user_id = j.user_id
INNER JOIN forum_comment AS f ON f.comment_id = j.comment_id
INNER JOIN user_comment_join AS cj ON u.user_id = cj.user_id
WHERE p.post_id = '$id'
ORDER BY created_date ASC
";
那为什么我投了反对票却没有任何评论呢?太棒了……我不是反对票的人,但错误实际上是告诉你该列不存在,因此查询失败,因此,$r
为FALSE
。你可以通过简单的搜索来解决这个问题:嘿,我知道$r在这一点上失败了,因为显然有一些错误开始查询。我最需要的是查询方面的帮助…表u
中不存在列u
(这是一个表,因为您没有给任何内容添加别名u
)。哪个表包含列user\u id
?在对表进行别名时,您不需要将作为。myusers
表和myuser\u comment\u join
表都包含该列
$q = "SELECT p.post_id, f.created_date, f.comment_id, f.comment_content, u.user_id, u.first_name, u.last_name, j.id
FROM forum_post AS p
INNER JOIN comment_post_join AS j ON p.post_id = j.post_id
INNER JOIN users AS u ON u.user_id = j.user_id
INNER JOIN forum_comment AS f ON f.comment_id = j.comment_id
INNER JOIN user_comment_join AS cj ON u.user_id = cj.user_id
WHERE p.post_id = '$id'
ORDER BY created_date ASC
";