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
?在对表进行别名时,您不需要将
作为
。my
users
表和my
user\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
     ";