2017-06-11 14 views
0

カートにあるすべてのアイテムのIDをデータベースに挿入し、同じケースで作成されたばかりの請求書にこの請求書の行を結合します。 ボタンを押すと、データベースに新しい請求書が追加され、その後、カート内のすべての単一商品が追加されますが、今度は2番目のクエリの1を単に作成された請求書IDに置き換える必要があります。どのように私はこれを動作させることができますか?データベースに挿入されたばかりの行のIDを取得する

case "apply": 
    $curdate = date('Y-m-d'); 
    // new invoice 
    $sql = "INSERT INTO invoice (user_user_id, dates) VALUES ('1', '$curdate')"; 
    $result = mysqli_query($con, $sql); 
    // for each item in cart insert into invoiceline 
    foreach ($_SESSION["cart_item"] as $item){ 
    $car = $item["id"]; 
    $sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '1')"; 
    $result = mysqli_query($con, $sql); 

    } 
    unset($_SESSION["cart_item"]); 
    break; 
} 
} 

invoice_idは、主が、外部キーは、テーブルは私がmysqli_insert_idを使用できると思ういけないので、主キーを持ってdoenstないのですか?

を使用でき
+0

の可能性のある重複した[mysqliの\ _insert \ _id:何ですか?誰かが私はこれを呼び出す直前に別の行を挿入した場合](https://stackoverflow.com

だから、あなたの2番目のクエリは次のようになります/ question/18264282/mysqli-insert-id-what-if-someone-inserts-another-row-just-before-i-call-this) – mickmackusa

答えて

1

$inserted_id = mysqli_insert_id($con); 

または、オブジェクト指向のスタイル:

$inserted_id = $con->insert_id; 

$ inserted_idだけで挿入された行の値を持つことになります(自分の中で自動インクリメントする必要があります表)。

$sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '$inserted_id')"; 
+0

これは私が必要だったので、既にmysqli_insert_idで試してみましたが、$ conを忘れました – marijn

関連する問題