[英]Insert nested JSON array as parameter in php mysql database
我想在phpmyadmin数据库中插入JSON参数。 我尝试使用下面的代码,但是没有用。 请帮助我。
我的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代码是:
<?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
函数,如下所示:
$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个值。
$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())";
这是什么,, $地址之后?
更新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);
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.