if (isset ($envoi)){
$sql = "INSERT INTO client (id_client, nom, prenom)
VALUES ('','$nom','$prenom')" ;
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
$id_client = mysql_insert_id();
$sql = "INSERT INTO book (nom_image, images, id_client)
VALUES ('$nom_image1','C:/Program files/EasyPHP 2.0b1/www/test /$name_file1','$id_client'), ('$nom_image2','C:/Program files/EasyPHP 2.0b1/www/test /$name_file2','$id_client), ..., ('$nom_image8','C:/Program files/EasyPHP 2.0b1/www/test /$name_file8','$id_client)
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
}
Je ne veux pas qu'il y est d'insert si la valeur est vide mais je suis obligé d'envoyer ('$nom_image8','C:/Program files/EasyPHP 2.0b1/www/test /$name_file8','$id_client) si le champ est remplis ?if ($name_file8 =='') ...
if (isset ($envoi)){
$sql = "INSERT INTO client (id_client, nom, prenom)
VALUES ('','$nom','$prenom')" ;
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
//créaction de la requete :
if (!empty($name_file1)) $insertion = "('$nom_image1','C:/Program files/EasyPHP 2.0b1/www/test /$name_file1','$id_client'),";
if (!empty($name_file2)) $insertion .= "('$nom_image2','C:/Program files/EasyPHP 2.0b1/www/test /$name_file2','$id_client'),";
if (!empty($name_file3)) $insertion .= "('$nom_image3','C:/Program files/EasyPHP 2.0b1/www/test /$name_file3','$id_client'),";
...
if (!empty($name_file8)) $insertion .= "('$nom_image8','C:/Program files/EasyPHP 2.0b1/www/test /$name_file8','$id_client'),";
$insertion = substr($insertion,0,-1); // on enlève la dernière virgule
$id_client = mysql_insert_id();
$sql = "INSERT INTO book (nom_image, images, id_client)
VALUES $insertion";
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
}
Vérifie que je ne me suis pas trompé... if(!empty($image_model8['tmp_name']))
{
$content_dir = 'C:/Program files/EasyPHP 2.0b1/www/test/images/';
$tmp_file = $image_model8['tmp_name'];
$type_file = $image_model8['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}
$name_file8 = $image_model8['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file8) )
{
exit("Impossible de copier le fichier dans $content_dir");
}}
}
Merci à tous les deux
C'est ce que je voudrais faire seulement je ne sais pas quel condition utilisé ni quoi renvoyé dans la requetePourquoi ne pas inscrire ta requete dans ta condition $name_file8 = $image_model8['name']; ?
J'ai fait la solutin que je connais après c'est sans doute pas la meilleure.Question stupide mais pourquoi ne pas utiliser un tableau ??
<form name="test" action="test2.php" method="post" enctype="multipart/form-data">
<input name="prenom" value="prenom"/><br/>
<?php
for($i=0;$i<8;$i++)
{
?>
<input type="file" name="image_model[]"/><br/>
<?php
}
?>
<input type="submit" value="Go"/>
</form>
Ainsi dans ta page de traitement tu vas pouvoir récupérer un tableau des fichiers passés en argument, qui sera $_FILES["image_model"];$all_image_model = $_FILES["image_model"];
foreach($all_image_model["tmp_name"] as $key => $tmp_file)
{
if(!empty($tmp_file))
{
$content_dir = 'C:/Program files/EasyPHP 2.0b1/www/test/images/';
$type_file = $all_image_model['type'][$key];
//etc, tes fonctions de traitement
//Enfin à la fin
if( !move_uploaded_file($tmp_file, $content_dir . $name_file8) ) {
exit("Impossible de copier le fichier dans $content_dir");
}
else { //donc le fichier a reussi
//Ton code d'insertion en base (ou la concaténation de la requete pour une seule query à la fin
}
}
}
L'avantage est que dans cette boucle tu traite tous les éléments du tableau, donc si un jour tu décides que ce n'est pas 8 photos le maximum mais 40, il te suffit de changer la boucle dans ton formulaire et le traitement fonctionnera pareil !$sql = "INSERT INTO test (id_test, nom_test, pays_test, date_debut, date_fin)
VALUES ('','$nom','$pays_test', now(), date_add(now(), interval 2 week))" ;
$sql = "INSERT INTO model (nom_model, images, id_test, image_popup)
VALUES ('$nom_model[0]','C:/Program files/EasyPHP 2.0b1/www/test P/$name_file[0]','$id_test',''),
('$nom_model[1]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[1]','$id_test',''),
('$nom_model[2]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[2]','$id_test',''),
('$nom_model[3]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[3]', '$id_test',''),
('$nom_model[4]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[4]','$id_test',''),
('$nom_model[5]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[5]','$id_test',''),
('$nom_model[6]','C:/Program files/EasyPHP 2.0b1/www/test/$name_file[6]','$id_test',''),
('$nom_model[7]','C:/Program files/EasyPHP 2.0b1/www/test /$name_file[7]','$id_test','')";
Si j'insère 8 entrées dans la table model, il me dublique également 8 entrées dans la table test!if (isset ($envoi)){
$sql = "INSERT INTO test (id_test, nom_test, pays_test, date_debut, date_fin)
VALUES ('','$nom','$pays_test', now(), date_add(now(), interval 2 week))" ;
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
// on récupère l'id_site qui vient d'être généré
$id_test = mysql_insert_id();
$sql = "INSERT INTO model (nom_model, images, id_test, image_popup)
VALUES ('$nom_model','C:/Program files/EasyPHP 2.0b1/www/test /$name_file','$id_test','')";
$requete = mysql_query($sql, $connect) or die( mysql_error() ) ;
}
Donc mintenant au niveau de la table model j'ai bien le nombre de modèles correspondant à mon insertion mais par contre si j'insère 3 entrées dans cette table, j'en ai aussi 3 dans la table test !!!!