lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 juin 2008
-
23 août 2007 à 11:09
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
23 août 2007 à 14:58
Bonjour,
voila, j'ai un problème sur lequel je butte depuis une semaine sans rien trouver.
Deux autres personnes ont apparement le meme problème sur deux autres forum, mais ils sont aussi resté sans réponse.
J'aimerai créer une page d'upload multiple de photo (18 exactement), avec les photos allant dans un repertoire, et leur nom allant dans une base MySql.
Mon problème est que je n'arrive pas à mettre les noms dans la base.
Je vous décris les démarches en plusieurs étape:
-L'upload simple (là aucun problème tout marche nickel) Ok
-L'upload multiple vers un repertoire (là aussi, tous les fichiers vont bien dans le repertoire voulu) Ok
-L'écriture dans la table MySql, le problème est là, je n'ai pour seul réponse en face de l'ID "ARRAY".
Effectivement au lieu d'utiliser $_FILES() comme pour un upload simple je fais une boucle, ce qui me renvoi donc logiquement un array, mais comment obtenir les valeurs de cet array???
Je vous met les petits bout de script que j'ai fait:
Pour le HTML il n'y a pas de problème:
Pour le PHP voici les différents scripts testé:
Le premier script marque bien le nom dans la base de donnée et copie bien la photo dans le repertoire, mais la boucle ne doit pas marcher car il ne le fait que pour un seul fichier laissant les autres à la porte.
Le second prend toutes les photos (donc là la boucle marche) et les copie toutes dans le repertoire de destination. Mais au lieu de récuperer le nom de la photo dans MySql il me note "ARRAY".
}
if (isset($_FILES['capt']['name']))
{ for ( $n=0; $n<count($_FILES['capt']['name']) ;$n++ )
{ if ( $_FILES['capt']['error'][$n]==0 )
{ move_uploaded_file( $_FILES['capt']['tmp_name'][$n] ,
"screenshots/test/".$_FILES['capt']['name'][$n] ); }
}
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertpics")) {
$insertion = " INSERT INTO screenshot (Screenshot)
VALUES ('".$_FILES['capt']['name']."')";
mysql_query($insertion) or die(mysql_error());
}
?>
Voila, alors comment transformer cet "array" par "le_nom_de_la_photo"!!!!!!!
///////////////////////////
Je débute complétement la dedans et mes recherches sont resté infructueuse.
Sur les divers forum je trouve bien des script d'envoi multiples, mais aucun vers une base de donnée.
Je concentre mes recherches sur l'upload mais c'est peut être ailleurs (je pense à la boucle, mais je ne vois vraiment pas quoi faire).
Comme le problème similaire des deux autres personnes sont resté sans réponse sur leurs forum je panique un peu là, alors svp si quelqu'un peut m'aider
En tout cas merci d'avance, au moins d'avoir tout lu.
PS: je sais que pour la sécurité ce n'est pas ça, mais je le ferai aprés.
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "insertpics")) {
foreach ($aTab as $sName) {
$insertion = " INSERT INTO screenshot (Screenshot)
VALUES ('".$sName."')";
mysql_query($insertion) or die(mysql_error());
}
}
?>
Tu dois effectivement boucler sur ton tableau de fichiers. Il y a plusieurs façons de faire, dont bcp quis ont plus optimisées et plus élégantes que le script ci-dessus, mais bon, j'ai fait ça de manière à ne pas avoir à modifier trop ton script.
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 20148 23 août 2007 à 11:18
J'ai pas pris le temps de lire ta source complètement mais si tu insère les noms chaque fois dans la boulde foreach() dans ta bdd ça devrait aller... sinon tu peux refaire aussi une boucle foreach() sur ton array à la fin et inserer chaque cké une à une dans ta BDD...
Bonne journée!
<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo <hr size="2" width="10" />
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 juin 2008 23 août 2007 à 11:45
Merci pysco68,
J'ai essayé ta première solution qui est si j'ai bien compris de rajouter le nom dans la boucle foreach mais soit c'est moi qui m'y suis pris comme un manche, soit ça n'est pas ça. En gros ça a eu l'effet inverse, puisque ça a enlevé le nom.
En fait le scritp avec la boucle FOREACH écris bien le nom de la photo dans la base de donnée et les fichiers dans le repertoire de destination, mais ne fait pas de boucle (ce qui pour une boucle n'est pas top ;-) ).
Le script avec la boucle FOR lui copie les fichier dans le repertoire de destination, mais renvoi ARRAY comme nom de fichier...
A moins que tout le script soit à jeter je ne sais pas trop. Je débute et c'est vraiment tout ce que j'ai réussit à faire pour le moment.
Lolo
Vous n’avez pas trouvé la réponse que vous recherchez ?
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 20148 23 août 2007 à 11:51
OoOups :) je sais pas si j'ai bien compris ta réponse, mais ton problème n'est toujours pas résolu ^^ donc tu ne devrais pas (encore) accepter ma réponse ^^ sinon les autres croirons que c'est résolu et ils ne viendrons plus....
donc si maintenant on prends ta deuxiemme solution on récupère le array de la bloucle for() et on en fais une boucle foreach sur l'array :)
<hr size= "2" width="100%" />foreach($array_images as $value){
ta_requet_SQL_pour_ajouter_le_nom_de_fichier_"$value";
}<hr size ="2" width="100%" />
voilà à quoi je pensais :)
<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo <hr size="2" width="10" />
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 juin 2008 23 août 2007 à 13:16
Oupppsss merci pour la précision sur l'acceptation des réponses...
Effectivement ce n'est pas résolu.
J'ai bien essayer de mettre:
foreach($array_images as $value){
ta_requet_SQL_pour_ajouter_le_nom_de_fichier_"$value"; }
mais soit je ne l'ai pas mis au bon endroit (j'ai a peut prêt tout testé quand meme) soit ce n'est pas encore ça.
En tout cas merci ça me donne des pistes de recherche, et si ça ne me sert pas là ça servira plus tard!;-)
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 juin 2008 23 août 2007 à 14:12
Un mega mega grand merci Mamalam!!!!
Ca marche au top et tu me sors vraiment une sacrée épine du pied!!!!
Je vais regarder tout ça de plus pret maintenant pour essayer de tout comprendre afin de paufiner le tout et surtout d'y arriver tout seul comme un grand.
Une fois toutes les clefs en main si ça ne te dérange pas je posterai la solution sur les deux forum ou les gars n'y arrive tjs pas.
Encore merci pour tout