2016-08-29 2 views
-2

Ich habe 2 Tabellen tbl_sales und tbl_customerWie zwei IDs zum Einfügen auf zwei Tabellen auf PHP

enter image description here

Wenn ich ‚Bestellung bestätigen‘ klicken Ich möchte meine tbl_sales enthalten diese Werte

sale_id customer_id product_name product_qty product_price 
    1   1   Coca-Cola2  25    13 
    2   1   Pepsi   25    12 
    3   1   Nescafe  25    12 

Und meine tbl_customer um diese Werte zu enthalten

customer_id customer_firstname customer_address customer_contact 
    1    John   #3 St. Boulevard  123456789123 

Wie erreiche ich das mit PHP und MySQL?

+0

Was ist das Problem, das Sie haben? – eol

+0

Wie sieht es aus, wenn Sie Daten zu MySQL hinzufügen? – Labradorcode

+0

@eol wie man dem Kunden eine ID gibt und gleichzeitig die von ihm bestellten Produkte anbringt – Odie

Antwort

1

Fügen Sie zuerst einen neuen Datensatz in die Tabelle tbl_customer ein und rufen Sie die letzte Einfüge-ID ab. Mit dieser ID fügen Sie den Datensatz in die Tabelle tbl_sales ein. Angenommen, Sie verwenden pdo und auto_increment etwas wie folgt aus:

//create a prepared statement for inserting into the customer table 
$prepStmt= $pdo->prepare("INSERT INTO tbl_customer (customer_firstname, customer_address, customer_contact) 
    VALUES(:firstname, :address, :contact)"); 

$prepStmt->execute(array(
     "firstname" => $_POST['yourFormValueForFirstname'], //TODO: add validation for $_POST variables because of XSS-attacks! 
     "address" => $_POST['yourFormValueForAddress'], 
     "contact" => $_POST['yourFormValueForContact'] 
    )); 

//now get the last inserted id 
$lastCustomerId = $pdo->lastInsertId(); 

//create a prepared statement for inserting into sales table 
$prepStmt= $pdo->prepare("INSERT INTO tbl_sales (customer_id,product_name, product_qty, product_price) 
     VALUES(:customerId, :prodName, :prodQ,:prodPrice)"); 

//and use the last inserted customer id for the new sales record 
$prepStmt->execute(array(
      "customerId" => lastCustomerId, 
      "prodName" => $productName, 
      "prodQ" => $productQuantity, 
      "prodPrice" => $productPrice 
     )); 
+0

Muss ich einen Datensatz manuell in den 'tbl_customer' einfügen, wenn ich einen weiteren Verkauf machen möchte? Ich benutze 'mysqli_', aber danke, ich werde versuchen, dieses' PDO' zu verstehen. Und ja, meine 'customer_id' und' sales_id' haben AI. – Odie

+0

Nein, Sie könnten einfach prüfen, ob ein Kunde mit z. Die E-Mail-Adresse hat bereits etwas gekauft. Sie treffen also eine weitere Auswahlabfrage, in der Sie nach der eindeutigen Spalte suchen. Wenn keine Zeile zurückgegeben wird, fügen Sie einen neuen Datensatz ein, ansonsten verwenden Sie die Kundennummer der zurückgegebenen Zeile. – eol

+0

Für mysqli ist die letzte Einfüge-ID ziemlich ähnlich. Anstatt '$ pdo-> lastInsertId()' benutzen Sie $ mysqli-> insert_id' – eol

Verwandte Themen