【问题标题】:PHP SQL, query returns only one row of dataPHP SQL,查询只返回一行数据
【发布时间】:2012-03-10 05:36:38
【问题描述】:

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

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

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

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

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

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

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

    干杯

    【讨论】:

    • 感谢 Madbreakers 的帮助
    • “谢谢”很好,但您可能希望对您认为有帮助的任何答案进行投票,并接受您认为最能回答您问题的答案。
    【解决方案2】:

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

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

    【讨论】:

    • 感谢 Marc B 的帮助
    【解决方案3】:

    mysql_fetch_assoc($results) 只获取一行。

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

    【讨论】:

    • 答案不完整。您需要提供获取所有行的方法,因为这显然是 OP 想要的。
    • 我认为链接中的示例已经足够了。
    猜你喜欢
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多