ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

插入数组值使用php和PDO将单个ID插入到mysql数据库中

2019-10-10 03:18:53  阅读:14  来源: 互联网

标签:php arrays mysql ajax



这个问题已经在这里有了答案:            >            Insert multiple items into one ID MySQL from checkbox input PHP form                                    1个
使用具有Ajax负载的数组插入将多个产品插入单个id.也许使用Explode,但需要针对此类输出的明确说明:
enter image description here

所有产品(问题)都将输入一个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
提前致谢.

解决方法:

嗨,我认为最好的方法是为所有插入项赋予不同的名称,例如“ 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();
}

美好的一天,我希望这可以帮助您



标签:php,arrays,mysql,ajax

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有