2012-08-14 31 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++; 
}