1

私は2つのテーブルを持っています:

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

表 2 には、表 1 の id フィールドに対応する a_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 のコンテンツを表示しますが、コメントが複数あるはずなのに 1 つしかコメントしません。特定の記事に対するすべてのコメントが表示されるようにするには、どうすればよいですか? そして、$row["comments"] は配列であってはいけませんか?

私が目指している最終結果は、一度に 1 つの記事を表示し、その記事に割り当てられたすべてのコメントを表示することです。現在、私が得ているのは 1 つの記事と 1 つの (最初の) コメントだけですが、表 2 には a_id フィールドに同じ値を持つ複数の行があります。

4

1 に答える 1

2

フェッチを 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 に答える