Enregistrement de plusieurs lignes à la fois dans une base de données

Signaler
-
Messages postés
32446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
-
Bonjour,

J'ai un souci avec mon code php ci-dessous. Je reçois les données depuis une application mobile. L'utilisateur peut choisir et envoyer plusieurs photos à la fois à partir d'un seul bouton. Donc, de mon côté, je reçois bien toutes les photos une à une. Mais, mon problème est que ma base de données n'arrive pas à enregistrer toute les photos.
Par exemple, si l'utilisateur envoie 4 photos, je dois recevoir normalement 4 enregistrements dans ma base de données. Mais, seul un enregistrement est réalisé.
Comment puis-je le boucler pour que ma base de données puisse enregistrer toutes les photos reçues ligne par ligne.

<?php   
 $user = "******";
 $pass = "*******";
 $host= "*********";
 $dbname="********";
 $conn = new mysqli($host, $user, $pass, $dbname);
 //************************************************************************************************************
 $json = json_decode(file_get_contents('php://input'),true);
 
 $code = gmdate('YndYis');
    $name = $json["name"];
    $imageList = $json["imageList"];
    $i = 0;
 $yy=false;
 
    $response = array();
       $man=array();
    if (isset($imageList)) {
     if (is_array($imageList)) {
      foreach($imageList as $image) {
        $decodedImage = base64_decode("$image");
        $return = file_put_contents("uploads/".$code."_".$i.".JPG", $decodedImage);
    
    $man1[$i]="uploads/".$code."_".$i.".JPG";
    
        if($return !== false){
    
     $response['success'] = 1;
     $response['message'] = "Image Uploaded Successfully";
     $yy=true;
    
   }else{
     $response['success'] = 0;
     $response['message'] = "Image Uploaded Failed";
   }
   $i++;
        }
     }
  $photo=json_encode($man1);
  $id_photo = gmdate('YndYis');
  $moment_photo = gmdate('Y-n-d Y:i:s');
  $tel_client = '8894883993';
  $nom_client = 'iKelSilver 2';
  $identif_android = 'UYUYGuyyYgrrrrid';
  
  $InsertSQL = "insert into photo_print(id_photo_print,image_photo_print,id_android,tel_photo_print,nom_prenom_photo_print,moment_photo_print)values('$id_photo','$photo','$identif_android','$tel_client','$nom_client','$moment_photo')";
$conn->query($InsertSQL);
$conn->close();
  } else{
     $response['success'] = 0;
        $response['message'] = "List is empty.";
    }
 
    echo json_encode($response);
?>

Merci d'avance

1 réponse

Messages postés
32446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
347
Bonjour,

Tu veux insérer une ligne par photo dans la bdd ou bien mettre "toutes les photos" dans un seul enregistrement ? par ce que.. ben.. d'un côté tu nous dis n'avoir qu'un seul enregistrement... et de l'autre.. tu ne fais qu'une seule requête insert dans laquelle tu utilises
$photo=json_encode($man1);

Donc difficile de comprendre

Au passage.. est-ce que, au moins, les photos sont chargées sur le serveur ?