1

我有两张桌子:

Table 1: Articles (id, name, title, content)
Table 2: Comments (id, comment, a_id)

表2包含a_id对应表1中id字段的评论,同一篇文章有​​几行

我使用了以下选择语句:

$result = mysql_query("SELECT * FROM articles a JOIN comments c ON a.id = c.a_id WHERE a.name='$a'");

$row = mysql_fetch_array($result);
echo $row["title"]."<br/>".$row["content"]."<hr/>".$row["comments"]

抛开安全问题不谈,这会显示给定文章名称 $a 的内容,但在应该有多个评论时只给出一个评论。我必须怎么做才能显示给定文章的所有评论?$row["comments"] 不应该是一个数组吗?

我想要的最终结果是一次显示一篇文章,以及分配给给定文章的所有评论。目前我得到的只是一篇文章和一个(第一个)评论,即使表 2 中有多行具有相同的 a_id 字段值

4

1 回答 1

2

你必须把你的 fetch 放在一个 while 循环中:

$i=0;
while($row = mysql_fetch_assoc($result))
{
    if(!$i)
    {
        echo $row["title"]."<br/>".$row["content"]."<hr/>";
        $i++;
    }
    echo $row["comment"] . "<hr />";
}
于 2012-07-21T02:19:11.633 回答