Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2007, 12h34   #1
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
Par défaut INSERT et boucle

Salut

Supposons un formulaire de 3 champs (champ1, champ2, champ3) et ayant 6 lignes (cad 6 input)

Comment avec une requete INSERT INTO peut on enregistrer chaq ligne du formulaire dans une table ayant aussi 3 champs. Car je me perds un peu dans mes boucles.
Merci de m'aider
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 13h02   #2
Membre actif
 
Avatar de bluemartini
 
Inscription : avril 2006
Messages : 154
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : avril 2006
Messages : 154
Points : 160
Points : 160
supposons que tu ais enregistré tes 6 champ1 dans le tableau $champ1, tes 6 champ2 dans le tableau $champ2 et tes 6 champ3 dans le tableau $champ3,
Code :
1
2
3
4
5
6
 
for($i=0;$i<6;$i++)
{
$requete = "INSERT INTO table VALUES (".$champ1[$i].",".$champ2[$i].",".$champ3[$i].");";
mysql_query($requete);
}
bluemartini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 13h15   #3
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
voilà ce ke j'ai fait mais qui ne marche pas:
Code :
1
2
3
4
5
6
7
8
9
10
 
$i=0;
$idcarac=$_POST['champ1'];
$idprod=$_POST['champ2'];
$valeur=$_POST['champ3'];
 
for($i=0; $i<6; $i++)
{
mysql_query("INSERT INTO table VALUES('".$idcarac."','".$idprod."','".$valeur."')");
........
Alors je c pas si jè un blèm dans la requête
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 13h31   #4
Membre du Club
 
Inscription : octobre 2004
Messages : 42
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2004
Messages : 42
Points : 40
Points : 40
Envoyer un message via MSN à MicroAlexx
Bonjour,

il faut que tes 3*6 = 18 champs ont tous un nom différent (ou soit nommé en type tableau, champ1[]...)

ensuite tu fais tes insert avec les bons noms de champs.

insert champ1, champ2, champ3
insert champ4, champ5, champ6

...


etc
MicroAlexx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 14h03   #5
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
en faite le nombre de ligne viens d'une requete qui sort les caractéristiques pour un type de produit donc le nombre de ligne peut varié et la table où on INSERT à 3 champs (idprod, idcarac, valeur).

Voilà pourquoi on utilise une boucle
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 14h27   #6
Membre du Club
 
Inscription : octobre 2004
Messages : 42
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2004
Messages : 42
Points : 40
Points : 40
Envoyer un message via MSN à MicroAlexx
Re,

et bien soit tu genere ton formulaire de facon a avoir des nom de champs unique, par exemple :

champ1_1, champ2_1, champ3_1
champ1_2, champ2_2, champ3_2

et ceci grace a un compteur : "champ1_" + $i

soit tu utilise la notation tableau : <input name="champ1[]" />
et dans ce cas du recup les valeurs comme bluemartini te l'a indiqué :
$champ1[$i]

dans tous les cas tu cré un champ type=hidden contenant le nombre de ligne de ton formulaire
et dans la page d'arrivé tu fais ta boucle par rapport au nombre de ligne transmit ci-dessus.
MicroAlexx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 15h46   #7
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
ok j'implémente tt ça et je vous tiens informer. Merci encore
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 16h16   #8
Membre actif
 
Avatar de bluemartini
 
Inscription : avril 2006
Messages : 154
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : avril 2006
Messages : 154
Points : 160
Points : 160
Citation:
Envoyé par MicroAlexx Voir le message
Re,

et bien soit tu genere ton formulaire de facon a avoir des nom de champs unique, par exemple :

champ1_1, champ2_1, champ3_1
champ1_2, champ2_2, champ3_2

et ceci grace a un compteur : "champ1_" + $i

soit tu utilise la notation tableau : <input name="champ1[]" />
et dans ce cas du recup les valeurs comme bluemartini te l'a indiqué :
$champ1[$i]

dans tous les cas tu cré un champ type=hidden contenant le nombre de ligne de ton formulaire
et dans la page d'arrivé tu fais ta boucle par rapport au nombre de ligne transmit ci-dessus.

la solution que je j'ai écris tiens compte du fait que tu utilises cette notation de tableau, qui est quand même bien meilleure et facile à utiliser.
bluemartini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 16h23   #9
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
Au faite avec ces cratéristiques pour chaque produit j'aimerais en fait des critères de recherche là c encore une autre paire de manche étant donné que ma table caractérisique est détaché de la table produit mais liée pas une clé et aussi je c pas si pour le nombre important de produit que j'aurais je dois avoir même nbre de page à concevoir pour chak type de produit?
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 18h06   #10
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
merci pr votre aide ci précieux finalement comme je génère le formulaire dynamiquement alors j'utilise ça
Code :
1
2
3
4
5
6
7
8
9
for ($i=1;  $i <= $nbq; $i++) { //on increment les resultat
$name="Valeur".$i;
$valeur=$$name;
//fait la même chose avec les deux autre valeurs
 
$insert_car="INSERT INTO PRODUIT_CAR (valeur) VALUES ('$valeur')";
$exec_i_c=mysql_query($insert_car);
 
}
pour entrer les donnée ds ma table et ça marche propre merci encore
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h57.


 
 
 
 
Partenaires

Hébergement Web