$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,为什么它不检索所有记录/行?
答案 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。爆炸结果和瞧阵列。或者只是迭代结果集......
为了确保完整性,我们应该在确定哪种工具适合需要时注意所有选项。你知道的越多。