Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memasukkan data pemesanan dari array multidimensi

Contoh saya menggunakan PDO tetapi saya pikir Anda mendapatkan idenya, Anda juga harus pindah ke PDO atau MYSQLI alih-alih mysql

contoh:

<?php
// pdo example

$sql = 'INSERT INTO table (field1, field2, field3) VALUES (:value1, :value2, :value3)';

// $dbh is pdo connection
$insertTable = $dbh->prepare($sql);

$countArray = count($array);

for ($i = 0; $i < $countArray; $i++) {
   $insertTable->bindParam(':value1', $array['value1'][$i], PDO::PARAM_INT); // if value is int
   $insertTable->bindParam(':value2', $array['value2'][$i], PDO::PARAM_STR); // if value is str
   $insertTable->bindParam(':value3', $array['value3'][$i], PDO::PARAM_STR);
   $insertTable->execute();
}

?>

Format nama masukan

Saya melihat Anda melakukan ini:amount_' . $x . ' posting array Anda akan terlihat seperti ini:

[amount_0] => 100
[amount_1] => 200
[amount_2] => 1
[quantity] => 10
[quantity] => 20
[quantity] => 1

tetapi jika Anda menulis amount[] array akan terlihat seperti ini:

[amount] => Array
    (
        [0] => 100
        [1] => 200
        [2] => 1
    )

[quantity] => Array
    (
        [0] => 10
        [1] => 20
        [2] => 1

Opsi terakhir membuatnya jauh lebih baik untuk membaca array.

Contoh MySQLI

<?php
$sql = 'INSERT INTO table (field1, field2, field3) VALUES (?, ?, ?)';
$stmt = $mysqli->prepare($sql); 

$countArray = count($array);

for ($i = 0; $i < $countArray; $i++) {
$stmt->bind_param('ssd', $array['value1'][$i], $array['value2'][$i], $array['value3'][$i]);
   $stmt->execute();
} 
?>

Seperti yang Anda lihat, berdiri ssd sebelum parameter ini adalah jenisnya ada 4 jenis:

  • i =intenger
  • s =string
  • d =ganda
  • b =gumpalan

Anda harus selalu mendefinisikan ini.

Sunting

Anda harus menggunakan ini:

<?php 
// Parse the form data and add inventory item to the system
if (isset($_POST['cartOutput'])) { 

$sql= 'INSERT INTO orders (product_name, price, quantity, date_added) VALUES(?,?,?, NOW())';      

$stmt = $myConnection->prepare($sql); 
$countArray = count($_POST["item_name");
for ($i = 0; $i < $countArray; $i++) {
$stmt->bind_param('sss', $_POST['item_name'][$i], $_POST['amount'][$i], $_POST['quantity'][$i]);
$stmt->execute();
}

echo $sql   ; 

exit();
}
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui kolom jika nilai input bukan nol jika tidak, abaikan dan pertahankan nilai kolom yang ada di database

  2. Beberapa kueri MYSQL vs. Beberapa loop foreach php

  3. String dan susunan koneksi database

  4. Spasi di bidang database tidak dihapus oleh trim()

  5. perbarui data di div