0

前のトピック - 1 id for more items -の続きです。

最後のトピックでは、コンセプトについて質問しましたが、今はコンセプトのコーディングを続けています。

コードはデータをデータベースに正常に保存しますが、5 つのアイテムを挿入すると、ID ごとにアイテムごとにデータが送信されます。例 :
アイテム 1 - コンピュータ (購入番号 1)
アイテム 2 - マウス (購入番号 2)
私が欲しかったのは :
アイテム 1 - コンピュータ (購入番号 1)
アイテム 2 - マウス (購入番号 1)

ここに私のコードがあります:自動インクリメントで購入番号を使用しています。

ここに私の実行コードがあります:

<?php
$conn = oci_connect("system", "dev01");
$n = $_POST['jum'];
for ($i=1; $i<=$n; $i++)
{
$dept=$_POST['dept'];
$date_request=$_POST['date_request'];
$supplier=$_POST['supplier']; 
$item=$_POST['item'.$i]; 
$qty=$_POST['qty'.$i];  
$uprice=$_POST['uprice'.$i]; 
$total=$_POST['total'.$i];  
$s = oci_parse($conn,
"insert into purchase_request(dept_id, supplier_id, date_request, item, qty, uprice, total_amount) values ('$dept', '$supplier', '$date_request', '$item'
, '$qty', '$uprice', '$total'

)");

$r = oci_execute($s);
oci_rollback($conn);
echo "Data was committed\n";
}
?>

助言がありますか ?

4

1 に答える 1

0

以前の投稿で承認済みとしてマークした提案に従う必要がありますが、購入 ID を自動インクリメント フィールドにしないでください。要点は、自動インクリメントではないということです。特に必要な場合に上昇します(複数のアイテムが同じ purchase_id を持つことができるように)。これは、明示的に値を割り当てる必要があることを意味します。最も簡単な方法は、現在 purchases テーブルにある最大の購入 ID を照会し、そのクエリに 1 を追加することです。

于 2012-07-28T03:59:30.483 に答える