0

まとめようとしている出荷モジュールがあり、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 }
?>

すべてのnull値のように見えます。

4

2 に答える 2

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 クエリの基本的なエラー チェックとサニテーションが省略されていることに注意してください。

于 2012-08-14T16:39:49.087 に答える
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++;
}
于 2012-08-14T16:41:52.010 に答える