Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 21/09/2011, 13h01   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 0
Points : 0
Par défaut // si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire

bonjour,


j'ai un formulaire d'inscription, qui insere automatiquement des champs supplémentaires (non,prenom,email) en fonction d'un nombre de places variable, mon probleme est que je n'arrive pas a récuperer l'ensemble des lignes saisies. il me prend que la premiere à chaque fois. merci par avance à ceux qui veulent bien jeter un oeil et m'aider.


ma requete
Code :
1
2
3
4
5
6
7
8
 
$size=sizeof('nb_champs');
   for($i=0;$i<$size;$i++){
 
 
        mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier[$i]. "', '" . $nom[$i] . "', '" .$prenom[$i] . "','" . $email[$i] . "')" ) or die (mysql_error());
 
   }


le bout de script qui sert à ajouter les champs :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer"){
		// on affiche le nombre de champs du formulaire
		echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
 
		// on affiche la valeur des champs du formulaire
		for ($i=1; $i<=$_POST['nb_champs']; $i++){
				$dynamique = 'nom_'.$i;
				$value = $_POST[$dynamique];
				echo 'Valeur du champ '.$i.' : '.$value.'<br />';
 
 
 
		}
}
 
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
		// on défini le nombre initial de champs
		if (!isset($_POST['nb_champs'])){
				$_POST['nb_champs'] =  $nb_de_places_restantes;
		}
		// si la personne clic sur "un champs en +", on ajoute un champs
		if (isset($_POST['submit']) && $_POST['submit'] == "Un champs en +"){
 
		}
 
		// on affiche le formulaire
 
		// on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
		echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
 
		// on affiche tous les champs du formulaire
		for ($i=1; $i<=$_POST['nb_champs']; $i++){
				echo '<INPUT TYPE="text" name="nom[]'.$i.'">';echo '<INPUT TYPE="text" name="prenom[]'.$i.'">';echo '<INPUT TYPE="text" name="email[]'.$i.'"><br />';
 
		}
baxterbax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h32   #2
Membre actif
 
Homme Florian
Chef de projet NTIC
Inscription : novembre 2004
Messages : 205
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 26
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 205
Points : 159
Points : 159
Bonjour,

d'après la documentation PHP concernant sizeof:
Citation:
Compte tous les éléments d'un tableau ou quelque chose d'un objet.
Si tu regardes le retour de ton sizeof('nb_champs') tu remarqueras qu'il est toujours à 1, ce qui est normal vu ce qu'il fait.
NaeiKinDus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h48   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 0
Points : 0
merci, mais j'avoue à force de retourner le truc dans tous les sens ne plus trop comprendre ce que je dois faire. bref si tu peux m'indiquer la marche à suivre pour que cela fonctionne. merci d'avance
baxterbax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h02   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 129
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 129
Points : 8 489
Points : 8 489
pour parcourir un array utilise foreach pas for
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h11   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 0
Points : 0
merci, je vais tester ma requete avec foreach :

mais est-ce la bonne solution ?


Code :
1
2
3
4
5
6
7
  foreach($_POST['nb_champs'] as $valeur) 
   {
 
 
        mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier[$i]. "', '" . $nom[$i] . "', '" .$prenom[$i] . "','" . $email[$i] . "')" ) or die (mysql_error());
 
   }
baxterbax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h19   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 129
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 129
Points : 8 489
Points : 8 489
tu tests même pas ton code ...

$valeurs n'est pas utiliser,
tu ne protèges pas tes champs
t'utilises or die pour debugger


je te conseil d'apprendre les bases avant te lancer dans un projet
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h27   #7
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 0
Points : 0
pour tout dire je me suis lancé dans le php sans avoir reçu de formation en avant. et je galere un max c'est vrai, je comprend pas forcément tous ce que je fais et je dois cependant terminer ce formulaire d'inscription pour mon job rapidement.
baxterbax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h02.


 
 
 
 
Partenaires

Hébergement Web