MySQL将一个表的多行连接到另一个表的一行

时间:2012-07-21 02:16:01

标签: php mysql join rows

我有两张桌子:

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

表2包含a_id与表1中的id字段对应的注释,并且对于同一篇文章有​​几行

我使用了以下select语句:

$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字段具有相同的值

1 个答案:

答案 0 :(得分: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 />";
}