В настоящее время я столкнулся с проблемой, которую я отправляю через jsonArray и прикладываю к ней:
[
{
"id": "1",
"nom": "Hamburger",
"quantite": "3"
},
{
"id": "2",
"nom": "Cheeseburger",
"quantite": "5"
},
{
"id": "3",
"nom": "Giant",
"quantite": "0"
}
]
Я отправляю этот массив json в сценарий php и хочу вставить его в свой db идентификатор бургера и количество бургера. Но когда я это делаю, ничего не происходит. У меня нет ничего нового в моем столе, поэтому я проверяю ошибку и получаю ошибку 1062 "Duplicata champ '1-1' for the key 'PRIMARY'ID = 2". Я не понимаю, почему у меня эта ошибка.
вот мой php скрипт:
<?php
ini_set('display_errors',1); error_reporting(E_ALL);
// Headers
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
//echo file_get_contents("php://input");
$data = file_get_contents("php://input");
if(isset($data)){
$json=json_decode(($data));
echo json_encode(array("message" => "DATA RECEIVE"));
echo count($json);
$order = [];
// on établit la connexion
$con=mysqli_connect("localhost","root","","fastfood");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}else{
//si la connexion est bonne :
$idtable = 1;
$sql = "INSERT INTO `commande_burger` (`commande_id`,`burger_id`,`quantite`) VALUES(?,?,?)";
$stmt = $con->prepare($sql);
for ($i=0; $i < count($json) ; $i++) {
foreach ($json[$i] as $key => $value) {
if($key == "id")$id =$value;
if($key == "quantite"){
if($value>0){
$stmt->bind_param("iii",intval($idtable),intval($id),intval($value));
mysqli_stmt_execute($stmt);
echo "ID = ".$id;
echo "\nLa valeur est > à zero et vaut : ".$value;
printf("\n %d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));
echo "\n ERREUR : \n".mysqli_stmt_error($stmt);
//printf("\n %d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));
}
}
}
}
}
}else{
http_response_code(503);
echo json_encode(array("message" => "DATA ERROR"));
}
?>