Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बहुआयामी सरणी से ऑर्डरिंग डेटा कैसे सम्मिलित करें

मेरा उदाहरण पीडीओ का उपयोग करता है लेकिन मुझे लगता है कि आपको यह विचार मिलता है, साथ ही आपको MySQL के बजाय PDO या MYSQLI में जाना चाहिए

उदाहरण:

<?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();
}

?>

इनपुट नाम प्रारूप

मैं देख रहा हूँ कि आप यह कर रहे हैं:amount_' . $x . ' आपकी सरणी पोस्ट इस तरह दिखेगी:

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

लेकिन अगर आप amount[] लिखते हैं सरणी इस तरह दिखेगी:

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

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

अंतिम विकल्प सरणी को पढ़ने के लिए इसे बेहतर बनाता है।

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();
} 
?>

जैसा कि आप देख सकते हैं कि वहाँ खड़ा है ssd पैरामीटर से पहले ये प्रकार हैं, 4 प्रकार हैं:

  • i =पूर्णांक
  • s =स्ट्रिंग
  • d =डबल
  • b =बूँद

आपको इसे हमेशा परिभाषित करना चाहिए।

संपादित करें

आपको इसका उपयोग करना चाहिए:

<?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. MySQL त्रुटि कोड:1175 MySQL कार्यक्षेत्र में अद्यतन के दौरान

  2. MySQL स्कीमा को Github Wiki में बदलें?

  3. Msyql क्वेरी में सभी फ़ील्ड नामों के लिए गतिशील रूप से उपनाम निर्दिष्ट करें

  4. लिंकिंग तालिका में विदेशी कुंजी मान सम्मिलित नहीं किया जा सकता

  5. php, pdo mysql आंतरिक जुड़ने के साथ सम्मिलित नहीं कर सकता