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

iKelSilver - 3 févr. 2019 à 22:50
jordane45
Messages postés
35474
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
- 4 févr. 2019 à 23:15
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

jordane45
Messages postés
35474
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
356
4 févr. 2019 à 23:15
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 ?

0