如何检索多行MYSQL

时间:2014-02-19 02:30:56

标签: php mysql arrays

$sql = "SELECT * FROM orders WHERE ordercode = '$oc' AND order_status = '$pendingorderstatus'";
        $sqlresult = mysql_query($sql);
        $pendingorderrow = mysql_fetch_array($sqlresult);

        print_r($pendingorderrow);

伙计们,我有上面的代码从数据库中检索记录,但它只会检索1行数组格式。我在数据库中有多行相同的ordercode和pendingorderstatus,为什么它不检索所有记录/行?

4 个答案:

答案 0 :(得分:3)

您需要使用循环来遍历结果集。 while循环最容易使用:

while ($pendingorderrow = mysql_fetch_array($sqlresult)){
    print_r($pendingorderrow);
}

答案 1 :(得分:1)

您需要遍历结果集!

while($pendingorderrow = mysql_fetch_array($sqlresult))
{
$orderarray[]=$pendingorderrow['orders'];
}

print_r($orderarray);

底线

自PHP 5.5.0起,此(mysql_*)扩展名已弃用,将来会被删除。相反,应该使用MySQLi或PDO_MySQL扩展。

答案 2 :(得分:1)

因为你需要迭代结果集:

$sql = "SELECT * FROM orders WHERE ordercode = '$oc' AND order_status = '$pendingorderstatus'";
$sqlresult = mysql_query($sql);
while($pendingorderrow = mysql_fetch_array($sqlresult))
{
    //process here $pendingorderrow, e.g. print_r($pendingorderrow);
}

答案 3 :(得分:0)

如果你是一个不同类型的人,并且不想迭代数组,我可能会建议一些group_concat和explode动作,主要是如果你只做一个列,但你也可以做多个。

$sql = "SELECT group_concat(orders.columnA) FROM orders WHERE ordercode = '$oc' AND order_status = '$pendingorderstatus'";

只需为要从表中选择的每个字段执行group_concat。爆炸结果和瞧阵列。或者只是迭代结果集......

为了确保完整性,我们应该在确定哪种工具适合需要时注意所有选项。你知道的越多。