MySQL 查询循环使用存储在数组中的结果


mysql query looped with results stored in an array

我有一个运输模块,我正在努力包装,并尝试查询 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 }
?>

看起来像所有空值。

在尝试检索结果之前,您需要执行查询(通过调用 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注入。

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

// 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++;
}