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

- - Dernière réponse : jordane45
Messages postés
24534
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 février 2019
- 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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
24534
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 février 2019
362
0
Merci
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 ?

Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.