2012-07-21 69 views
1

的一行我有两个表:MySQL的JOIN一个表的多个行向其他表

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

表2包含与表1中与该ID字段对应A_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"] 

安全问题,这说明给定项目名称美元的内容,但只给出了一个注释时,应该b e多个。我必须做些什么来获得给定文章的所有评论才能显示出来?不应该$ row [“评论”]是一个数组?

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

+1

将'mysql_select'替换为'mysql_query' – Jocelyn 2012-07-21 02:20:20

+0

对,错字,对不起。 – reformed 2012-07-21 02:23:03

回答

2

您必须在while循环中放置您的获取:

$i=0; 
while($row = mysql_fetch_assoc($result)) 
{ 
    if(!$i) 
    { 
     echo $row["title"]."<br/>".$row["content"]."<hr/>"; 
     $i++; 
    } 
    echo $row["comment"] . "<hr />"; 
} 
+0

但是,这是一次只有一篇文章,只有一个标题和内容元素。使用while循环将显示多个文章标题和内容,但我想要一篇文章显示多个评论。 – reformed 2012-07-21 02:21:35

+1

@reformed,那么你只能回显第一行的标题和内容,对于后面的行,只能得到评论。看我最近的编辑。 – 2012-07-21 02:25:39

+0

作品。感谢更新。 – reformed 2012-07-21 02:50:28