2012-08-14 51 views
0

我有一个运输模块我正在包裹起来,我试图查询MySQL表,计算行对采购订单给定的行项目的多项成果,并加以储存导致一个数组。我不认为我可以在mysql中进行分组,因为它不会为没有任何货件的订单项提供结果。目的是采取原始订单数量,通过我的查询计算出货的单位数量,然后从提供剩余单位的原始数量中减去从该订单项发货的单位。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 } 
?> 

看起来像所有的空值。

+0

它可能不会帮助回答你的问题,但你应该停止使用'mysql_ *'函数。他们正在被弃用。请使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不确定使用哪一个,[阅读本文](http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/)。 – Matt 2012-08-14 17:32:44

回答

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注入。

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