2016-10-02 121 views
0

使用帶有Ajax負載的數組插入將多個產品插入單個id。也許使用爆炸,但需要一個清晰的指令,這種類型的輸出: enter image description here使用php和PDO插入數組值插入到mysql數據庫中的單個ID

所有產品(問題)將輸入到一個單一的ID。這些問題列表由Ajax添加。

<?php 
if(isset($_POST['Submit'])){ 
    try { 
    $serviceTitle = $_POST['serviceTitle']; 
    $price = $_POST['price']; 
    $quantity = $_POST['quantity']; 
    $amount = $_POST['amount']; 

    $date = date('Y-m-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(); 
    } 
} 
?> 

它會插入在同一orderNo和customerNo但我想插入數據行是這樣的: enter image description here 在此先感謝。

+0

完全不相干的問題,但我想指出,「數量」的普遍接受的速記版應該是「數量」,而不是「Qnt」 –

回答

0

您好我認爲最好的辦法就是像'new_screen_price' 'old_screen_price'

所有inpunt給予不同的名稱,如果你的表格是由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; 

您準備好您的要求,我只是對兩個參數的價格和名稱做,但oviously你需要的所有

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

良好的一天,我希望這可以幫助你

+0

那麼,如何聲明「orderNo,customerNo,createDate,createTime,createBy」的值? –