Подготовить запрос - PullRequest
0 голосов
/ 19 июня 2020

В настоящее время я столкнулся с проблемой, которую я отправляю через 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"));
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...