在PHP MySQL数据库中插入嵌套的JSON数组作为参数 [英] Insert nested JSON array as parameter in php mysql database

查看:419
本文介绍了在PHP MySQL数据库中插入嵌套的JSON数组作为参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在phpmyadmin数据库中插入JSON参数.我尝试使用下面的代码,但是没有用.请帮助我.

I want to insert JSON parameters in my phpmyadmin database. I tried with below code but it didn't work. Kindly help me in this.

我的JSON参数是:

 `$ "address" = "bharuch"
 "customer_id" = "108"
 "products" = "[{"product_id":"1","product_name":"Potato","category_id":"1","subcategory_id":"1","product_memberprice":"11","product_nonmemberprice":"14","product_minquantity":"500 gms","product_image":"http:\/\/gaubharat.in\/gaubharat\/images\/potato.png","product_brand":"","sub_total":"28","user_qty":"2"},{"product_id":"2","product_name":"Tomato","category_id":"1","subcategory_id":"1","product_memberprice":"15","product_nonmemberprice":"18","product_minquantity":"500 gms","product_image":"http:\/\/gaubharat.in\/gaubharat\/images\/tomato.png","product_brand":"","sub_total":"18","user_qty":"1"}]"
"pincode" = "392025"
"order_totalamount" = "46"`

而我的PHP代码是: 

and my PHP code is:  

 <?php
    require("config.inc.php");
        $address = $_POST['address'];
        $customerid = $_POST['customer_id'];
        $amount = $_POST['order_totalamount'];
        $pincode = $_POST['pincode'];
        $product = json_decode($_POST['products']);

        foreach( $product as $key => $val)
        {
        $product_id = $val['product_id'];
        $product_name = $val['product_name'];
        $category_id = $val['category_id'];
        $subcategory_id = $val['subcategory_id'];
        $product_memberprice = $val['product_memberprice'];
        $product_nonmemberprice = $val['product_nonmemberprice'];
        $product_minquantity = $val['product_minquantity'];
        $product_image = $val['product_image'];
        $product_brand = $val['product_brand'];
        $sub_total = $val['sub_total'];
        $user_qty = $val['user_qty'];

        $query = "INSERT INTO `order`(cm_id,product_id,product_quantity,sub_total,order_totalamount,order_id,address,pincode,order_date) VALUES ('$customerid','$product_id','$user_qty','$sub_total','$amount','1','$address','$pincode',CURDATE())";



        if(!mysqli_query($db,$query))
        {
            die('Error : ' . mysql_error());
        }
        else{
           $response["success"] = 1;
           $response["message"] = "You order placed successfully!";
           echo json_encode($response);
        }
     }
   ?>

请帮助我.

推荐答案

您需要为$_POST['products']添加json_decode函数,如下:

You need to add json_decode function for $_POST['products'] as:

$address = $_POST['address'];
$customerid = $_POST['customer_id'];
$amount = $_POST['order_totalamount'];
$pincode = $_POST['pincode'];
$products = json_decode($_POST['products']);
foreach($products as $key => $val){
...

更新1:

您的查询有问题.您正在使用9列并插入10个值.

You have an issue in your query. You are using 9 columns and insert 10 values.

$query = "INSERT INTO `order`(cm_id,product_id,product_quantity,sub_total,order_totalamount,order_id,address,pincode,order_date) VALUES ('$customerid','$product_id','$user_qty','$sub_total','$amount','1','$address',,'$pincode',NOW())";

$ address之后的是什么?

What is this ,, after $address?

更新2:

修改后的代码:

<?php
    require("config.inc.php");
    $address = $_POST['address'];
    $customerid = $_POST['customer_id'];
    $amount = $_POST['order_totalamount'];
    $pincode = $_POST['pincode'];
    $product = json_decode($_POST['products']);

    $values = array();
    foreach($product as $key => $val)
    {
        $product_id = $val->product_id;
        $product_name = $val->product_name;
        $category_id = $val->category_id;
        $subcategory_id = $val->subcategory_id;
        $product_memberprice = $val->product_memberprice;
        $product_nonmemberprice = $val->product_nonmemberprice;
        $product_minquantity = $val->product_minquantity;
        $product_image = $val->product_image;
        $product_brand = $val->product_brand;
        $sub_total = $val->sub_total;
        $user_qty = $val->user_qty;

        $values[] = "('$customerid','$product_id','$user_qty','$sub_total','$amount','1','$address','$pincode',CURDATE())";
    }

    if(count($values) > 0){
        $query = "INSERT INTO `order` (cm_id,product_id,product_quantity,sub_total,order_totalamount,order_id,address,pincode,order_date) VALUES ";

        $query .= implode(",",$values);
        if(!mysqli_query($db,$query))
        {
            echo "Error";
        }
        else
        {
           $response["success"] = 1;
           $response["message"] = "You order placed successfully!";
           echo json_encode($response);
        }
    }
?>

这篇关于在PHP MySQL数据库中插入嵌套的JSON数组作为参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆