如何显示每篇文章的所有评论(PHP和SQL)?

因此,我有两个表,文章和评论(它们具有一对多关系(1条-很多评论)).该表的结构如下:

文章-ID(公钥),标题,出版物日期,内容

注释-com_id(密钥),作者,注释,ID(外键)

我用它来查询两个表:

SELECT * FROM articles as a INNER JOIN comments as c ON a.id = c.id

以前,我仅使用以下方式显示商品表:

<?php 
while($row = mysqli_fetch_array($query)) {

echo "
<div id='article'> 
<header>
    <hgroup>
         <h2>".$row['title']."</h2>
         <h4>Posted on ".$row['publicationDate']."</h4>
    </hgroup>
</header><p>".$row['content']."</p></div>";
}
?>

这将显示所有文章(带有日期,标题,内容等).现在有评论.我如何编辑php代码(或者如果我的查询不正确,如何编写查询),以使其显示所有文章以及每个文章的所有注释,如下所示:

Article One
 -- Comment 1
 -- Comment 2, etc.

Article Two
 -- Comment 1
 -- Comment 2, etc.

解决方法:

一种替代方法是将查询分为两部分.

首先会带回您想要的文章…

SELECT * FROM article;

拥有这些ID后,即可获取所有ID并使用类似以下内容的代码

SELECT * FROM comments WHERE article_id IN (".$list.");

这将MySQL查询限制为2,同时获取所需的所有数据.在围绕文章数据进行此循环之后,在该循环中,围绕评论数据进行循环.

这也意味着,与使用GROUP_CONCAT不同,您还将需要使用作者数据.

这不是一个很有说服力的解决方案,但应该可以.

上一篇:sqli-labs之Page-3


下一篇:PHP-mysqli multi_query后跟查询