mysql查询循环,结果存储在数组中

时间:2012-08-14 16:37:48

标签: php mysql arrays loops

我有一个发货模块,我正在努力结束并尝试查询mysql表,计算PO上给定订单项的行数,并将结果存储在数组中。我不认为我可以在mysql中进行分组,因为它不会为没有任何货物的订单项提供结果。目的是获取原始订单数量,计算通过我的查询发货的单位数量,然后从原始数量中减去装运的单位,提供要针对该订单项装运的剩余单位。

为了确保我收到零个数量的订单项没有货件,并将其存储在数组中我试图循环查询并将每个结果存储为我的数组中的值。如果有更好的方法,我愿意接受改变方法的建议。

以下是我的查询内容:

// I have a previous query that provides the number of line items for a given po.  that number is stored in variable $num1 
$a=1;
$LiShipped = array();

while($a<$num1){

$query2="SELECT count(E3_SN) AS SCount FROM Shipped WHERE Cust_Ord_Num = '$SO_Num' AND LineItem=$a";
$LiShipped[] = mysql_fetch_array($query2);
$a++;
}

不幸的是,当我继续遍历我的数组时,似乎没有任何内容存储在数组中。

<?php
echo $LiShipped[0]; //results nothing
echo var_dump($LiShipped); // results array(1) { [0]=> NULL } array(2) { [0]=> NULL [1]=> NULL } array(3) { [0]=> NULL [1]=> NULL [2]=> NULL }
?>

看起来像所有空值。

2 个答案:

答案 0 :(得分:1)

在尝试检索结果之前,您需要执行查询(通过调用mysql_query()):

$query2="SELECT count(E3_SN) AS SCount FROM Shipped WHERE Cust_Ord_Num = '$SO_Num' AND LineItem=$a";
$query2 = mysql_query( $query_2); // <-- NEED THIS
$LiShipped[] = mysql_fetch_array( $query2);

请注意,上面省略了SQL查询的基本错误检查和清理,以防止SQL注入。

答案 1 :(得分:0)

您没有执行查询,它无法正常工作。试试这段代码:

// I have a previous query that provides the number of line items for a given po.  that number is stored in variable $num1 
$a=1;
$LiShipped = array();

while($a<$num1){
    $query2="SELECT count(E3_SN) AS SCount FROM Shipped WHERE Cust_Ord_Num = '$SO_Num' AND LineItem=$a";
    $res = mysql_query($query2);
    while($LiShipped[] = mysql_fetch_array($res));
    $a++;
}