データベースで注文を検索するクエリがあります。私のSQLクエリは、注文IDがキーである注文情報(IDは複数の製品の注文に対して繰り返されます)と、製品の数量とバリエーションを含む注文情報を返します。
クエリはいくつかのテーブルを結合し、次のように出力します
|--orderid--|--orderstatus--|--ordcustid--|--orderprodname--|--orderprodqty--|--orderqty--|
|---12635---|-----11--------|-----4192----|----Product1-----|--------1-------|-----2------|
|---12635---|-----11--------|-----4192----|----Product2-----|--------1-------|-----2------|
|---12636---|-----11--------|-----3531----|----Product3-----|--------1-------|-----1------|
上記のとおりです。顧客 4192 は、2 つの製品を持つ 1 つの注文 (orderid 12635) を作成しました。顧客 3531 は、1 つの製品 (orderid 12636) を持つ 1 つの注文を行いました。
注文ごとに情報を取得してまとめたいと思っています。注文IDは同じですが、情報を収集しています。
私の現在のスクリプトは次のようになりますが、すべての行で機能します。
$result = mysql_query("
SELECT *
FROM orders, orderproducts, productimage, customers
WHERE orders.orderid = orderproducts.orderorderid
AND orderproducts.orderprodid = productimage.imageprodid
AND orders.ordcustid = customers.customerid
AND ordstatus = '11'
ORDER BY orderid
");
while($row = mysql_fetch_array($result))
{
//do stuff
}
スクリプトの目的は、各注文の情報をメールで送信することです。私の現在のスクリプトが行っていることは、すべての製品について顧客にメールを送信することです (つまり、顧客 4192 は、製品 1 用と製品 2 用の 2 つの別々の電子メールを受け取ります)。私がやりたいことは、顧客 4192 に両方の製品を同じ電子メールで送信することです。
orderid が同じである間に、 orderid が同じであるすべての行 (例: orderproductname, qty ) から情報を取得し、注文 ID が変更されたときに続行するようにスクリプトを改善するにはどうすればよいですか。