Вставка значений массива вставляет один идентификатор в базу данных mysql с использованием php и PDO

Вставьте несколько продуктов в один идентификатор, используя вставки массива с нагрузкой Ajax. Возможно, используйте Explode, но вам нужна четкая инструкция для этого типа вывода: введите описание изображения здесь

весь продукт (проблема) будет вводиться в один идентификатор. Этот список проблем добавлен Ajax.

<?php if(isset($_POST['Submit'])){ try { $serviceTitle = $_POST['serviceTitle']; $price = $_POST['price']; $quantity = $_POST['quantity']; $amount = $_POST['amount']; $date = date('Ym-d'); date_default_timezone_set('Asia/Dacca'); $time = date('h:i:s'); $createBy = $_SESSION['sess_username']; $_SESSION['orderNo'] = $_POST['orderNo']; $_SESSION['customerNo'] = $_POST['customerNo']; if($_POST['Submit']==='Submit'){ for($i=0;$i<count($serviceTitle);$i++){ $statement = $db->prepare("INSERT INTO invoice (orderNo,customerNo,productName,price,quantity,amount,createDate,createTime,createBy) VALUES (?,?,?,?,?,?,?,?,?)"); $statement->execute(array($_POST['orderNo'],$_POST['customerNo'],$serviceTitle[$i],$price[$i],$quantity[$i],$amount[$i],$date,$time,$createBy)); } } header("location: order_confirm_tech_step2.php"); } catch(Exception $e) { $error_message = $e->getMessage(); } } ?> 

Он будет вставляться в том же порядкеNo и customerNo, но я хочу вставить строку данных следующим образом: введите описание изображения здесь заранее спасибо.

Привет, лучший способ, я думаю, это дать другое имя для всех inpunt, таких как 'new_screen_price' 'old_screen_price'

если ваша форма генерируется js, вы можете сделать это, если не поставить прямо в html, который у вас есть

 <input name='new_screen_price'> <input name='new_screen_qty'> ... 

после того, как вы возьмете свое значение в php, как

 $newScreen = []; $newScreen['name'] = 'new screen'; $newScreen['price'] = $_POST['new_screen_price']; 

поместите свой массив в один

 $products = []; $products['newScreen'] = $newScreen; 

вы готовы для вашего запроса, я просто делаю для двух параметров цену и имя, но, очевидно, вам нужно для всех

 foreach($products as $prod){ $statement = $db->prepare("INSERT INTO invoice (orderNo,customerNo,productName,price,quantity,amount,createDate,createTime,createBy) VALUES (?,?,:name,:price,...)"); $statement->bindParam(':name', $prod->name); $statement->bindParam(':price', $prod->price); $statement->execute(); } 

Добрый день, надеюсь, это поможет вам