PHP SQL,查询只返回一行数据

时间:2012-03-10 05:36:39

标签: php mysql sql

快速提问...我的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);

3 个答案:

答案 0 :(得分:2)

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

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

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

  

返回与获取的行对应的字符串关联数组,如果没有其他行,则返回FALSE。

     

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

干杯

答案 1 :(得分:1)

获取函数一次只返回一行。如果你想要所有的行,你将不得不使用循环:

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

答案 2 :(得分:0)

mysql_fetch_assoc($ results)只提取一行。

http://php.net/manual/en/function.mysql-fetch-assoc.php