Problème d'insert dans BDD avec un while

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'insert dans BDD avec un while

par iclo » 07 oct. 2007, 16:55

De plus, tu peux remplacer la ligne:
mysql_query($req);
par
mysql_query($req) or die(mysql_error());
Afin d'afficher un message d'erreur si un de tes requêtes rencontre une erreur.

Re: Problème d'insert dans BDD avec un while

par Calimero » 07 oct. 2007, 16:33

apparemment la boucle va trop vite et l'insertion se fait seulement sur les 2 3 dernières images. comment faire pour lui dire d'attendre d'avoir inséré une entrée avant de passer à la next file ?
PHP est un langage synchrone. En php, chaque ligne est éxécutée uniquement si la ligne qui précède a été complètement éxécutée.

Si certains éléments de ta boucle ne sont pas enregistrés, ce n'est certainement pas à cause de la vitesse. Cherche plutôt du côté des données que tu manipules (certaines d'entre elles peuvent contenir des apostrophes ' par exemple, qu'il faut absolument échapper avec mysql_real_escape_string() avant de les insérer dans une requête SQL).

Problème d'insert dans BDD avec un while

par yesh » 07 oct. 2007, 14:24

Bonjour

j'ai ce code

Code : Tout sélectionner

while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (!in_array ($file, $table)) { echo($file); $exif = exif_read_data ($rep.'/'.$file, 0, true); $desc = $exif[IFD0][ImageDescription]; $date = $exif[EXIF][DateTimeOriginal]; $size = getimagesize ($rep.'/'.$file, $info); if(is_array($info)) { $iptc = iptcparse($info["APP13"]); $ville = $iptc["2#090"][0]; $province = $iptc["2#095"][0]; $pays = $iptc["2#101"][0]; } $req = "INSERT INTO `$rep` (nom,date,ville,province,pays,description) VALUES('$file','$date','$ville','$province','$pays','$desc')"; mysql_query($req); } } }
apparemment la boucle va trop vite et l'insertion se fait seulement sur les 2 3 dernières images. comment faire pour lui dire d'attendre d'avoir inséré une entrée avant de passer à la next file ?