2012-03-10 79 views
-1

快速的问题......我的SQL查询吐出此数据...PHP SQL,查询返回的数据只有一行

Array ([id] => 1 [name] => Test Name [text] => This is text [image] => image.jpg) 

当有两行数据,是有什么错我的php代码?

$query = "SELECT id, name, text, image FROM categories"; 
    $results = mysql_query($query, $connection); 
    $results = mysql_fetch_assoc($results); 

回答

2

mysql_fetch_assoc一次获取一行。您需要遍历所有的结果集:

while(false !== ($row = mysql_fetch_assoc($results))){ 
    [handle $row here] 
} 

从文档(搜索是你的朋友):

返回一个字符串的关联数组对应于提取行,或FALSE如果有没有更多的行。

如果结果的两列或多列具有相同的字段名称,则最后一列优先。要访问同名的其他列,您需要使用mysql_fetch_row()或添加别名来访问带有数字索引的结果。请参阅关于别名的mysql_fetch_array()描述示例。

干杯

+0

感谢Madbreakers对你的帮助 – user979331 2012-03-10 05:40:13

+0

“谢谢”是好的,但你可能会想赞成票,你发现有帮助的任何答案,并接受你认为最好的答案是你的问题。 – Madbreaks 2012-03-10 05:41:22

1

提取函数一次只返回一行。如果你想所有的行,你必须使用一个循环:

while($row = mysql_fetch_assoc($results)) { 
    ... do stuff with $row 
} 
+0

感谢马克B中你帮助 – user979331 2012-03-10 05:39:55