upload multiple et insert chemin dans base de données

gwena54 Messages postés 3 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 16 janvier 2006 - 16 janv. 2006 à 21:34
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 17 janv. 2006 à 14:11
salut à tous, je galere sur un probleme chiant depuis un bout de temps
j'ai créée un formulaire d'upload de plusieurs input
j'arrive à uploader ls images... mais lorsque je veux insérer le chemin des images dans une base de données il me fait par exemple 4 insert différents (si il y a 4 input)...
voila mon code, si vous pouviez me donner un coup de main!

// UPLOAD PHOTOS
$i=1;
for($i=1; $i < count($_FILES['photo']['name']);$i++){

$chemin = "../photos/" ;
//$tmp_image = $_FILES['photo']['name'][$i] ;

// Poids du fichier
if($_FILES['photo']['size'][$i] > 400000){ echo alert("Le poids de votre image est limité a 400 ko!"); exit;}

// Extension
$nom= $_FILES['photo']['name'][$i];
$ext= strstr($nom,".");

/*
$point = strrpos($_FILES['photo']['name'][$i],"."); // retourne un chiffre qui positionne le . à partir de la fin du nom ex:4
if(isset($point)){ $extension = substr($_FILES['photo']['name'][$i],$point); } // si la variable $point existe alors l'extension du fichier est $extension
else { $extension = ''; }
*/

if($ext != ".jpg" & $ext != ".jpeg" & $ext != ".gif"){
echo alert("Seuls les formats GIF et JPEG sont acceptés."); exit;}

$datetimer = date("m-Y");
$new_photo= $ref."_";
$new_photo.=$new_photo[$i].$datetimer.$ext;
//$new_photo.=

$new=$chemin.$new_photo;

move_uploaded_file($photo[$i],$new);

if(!file_exists($new)) {
echo alert("Erreur lors de l'upload de votre image! Veuillez recommencer."); exit; }

$sql="INSERT INTO $tableb (ref,titre,lieu,cp,type_hab,prix,type_offre,description,selection,photo$i)
VALUES ('$ref','$titre','$lieu','$cp','$type_hab','$prix','$type_offre','$description','$selection','$new')";
$insert = mysql_query($sql) or die( mysql_error() );

} // fin de la boucle for

5 réponses

gwena54 Messages postés 3 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 16 janvier 2006
16 janv. 2006 à 21:36
salut à tous, je galere sur un probleme chiant depuis un bout de tempsj'ai créée un formulaire d'upload de plusieurs inputj'arrive à uploader ls images... mais lorsque je veux insérer le chemin des images dans une base de données il me fait par exemple 4 insert différents (si il y a 4 input)...voila mon code, si vous pouviez me donner un coup de main!


// UPLOAD PHOTOS
$i=1;
for($i=1; $i < count($_FILES['photo']['name']);$i++){

$chemin = "../photos/" ;
//$tmp_image = $_FILES['photo']['name'][$i] ;

// Poids du fichier
if($_FILES['photo']['size'][$i] > 400000){ echo alert("Le poids de votre image est limité a 400 ko!"); exit;}

// Extension
$nom= $_FILES['photo']['name'][$i];
$ext= strstr($nom,".");

/*
$point = strrpos($_FILES['photo']['name'][$i],"."); // retourne un chiffre qui positionne le . à partir de la fin du nom ex:4
if(isset($point)){ $extension = substr($_FILES['photo']['name'][$i],$point); } // si la variable $point existe alors l'extension du fichier est $extension
else { $extension = ''; }
*/

if($ext != ".jpg" & $ext != ".jpeg" & $ext != ".gif"){
echo alert("Seuls les formats GIF et JPEG sont acceptés."); exit;}

$datetimer = date("m-Y");
$new_photo= $ref."_";
$new_photo.=$new_photo[$i].$datetimer.$ext;
//$new_photo.=

$new=$chemin.$new_photo;

move_uploaded_file($photo[$i],$new);

if(!file_exists($new)) {
echo alert("Erreur lors de l'upload de votre image! Veuillez recommencer."); exit; }

$sql="INSERT INTO $tableb (ref,titre,lieu,cp,type_hab,prix,type_offre,description,selection,photo$i)
VALUES ('$ref','$titre','$lieu','$cp','$type_hab','$prix','$type_offre','$description','$selection','$new')";
$insert = mysql_query($sql) or die( mysql_error() );

} // fin de la boucle for
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
16 janv. 2006 à 21:48
Sael og blesuð



C'est normal vous faites l'insertion dans votre boucle for ... il
faudrait concaténer vos variables et faire votre INSERT après la boucle
..

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðsson aka Sjón
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
16 janv. 2006 à 21:50
Sael og blesuð



Par ailleurs il est préférable de vérifier l'extention d'un fichier par
son mimetype que par les trois dernières lettres ... Car si je
renomme attrape_couillon.exe en attrape_couillon.jpg ou
attrape_couillon.gif cela marche vous uploadez ... ;-)

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðsson aka Sjón
0
gwena54 Messages postés 3 Date d'inscription mardi 9 août 2005 Statut Membre Dernière intervention 16 janvier 2006
16 janv. 2006 à 23:33
pour les vérification... ce n'est pas grave, ce n'est pas mon probleme...
par contre je n'ai pas trés bien compris le coup du concantener les variables...
je pourrais avoir un exemple qui colle à mon probleme?
merci d'avance!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
17 janv. 2006 à 14:11
Salut,

$sql="INSERT INTO $tableb (ref,titre,lieu,cp,type_hab,prix,type_offre,description,selection,photo$i)
VALUES ('$ref','$titre','$lieu','$cp','$type_hab','$prix','$type_offre','$description','$selection','$new')";
$insert = mysql_query($sql) or die( mysql_error() );

essaie de concaténer au lieu de faire 4 requêtes tu transformes ça en une seule (en fait tu fais une boucle séparée de la boucle principale pour concaténer la variable, concaténer veut dire "rajouter à la fin" (enfin en gros))

$sql='INSERT INTO '.$tableb.' VALUES';

for(...)
{

$sql.="('$ref','$titre','$lieu','$cp','$type_hab','$prix','$type_offre','$description','$selection','$new')";

}
mysql_connect(...);
mysql_select_db(...);
mysql_query($sql) or die( mysql_error());
mysql_close();

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous