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 15/02/2008, 10h22   #1
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Par défaut Lister le contenu d'un POST

Bonjour,

J'ai réalisé un formulaire avec plusieurs zones text, exemple cinq fois noms, prénoms, etc,

J'aimerais savoir comment je peux enregistrer toutes les données dans ma base. Pour le moment il me retourne que la dernière ligne .

Je galère grave j'ai trouvé des supers tuto sur ce site mais il ne soulève pas ce problème ou alors je n'ai pas trouvé le bon.

A l'aide svp, cela fait plusieurs jours que je cherche en vain. je ne demande pas la solution, mais simplement un exemple que je puisse comprendre le principe.


Merci à tous,


Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 10h24   #2
Membre éclairé
 
Avatar de Shiva Skunk
 
Femme Hélène
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 326
Détails du profil
Informations personnelles :
Nom : Femme Hélène
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 326
Points : 317
Points : 317
Bonjour, peux tu poster le code de ton formulaire s'il te plait?

D'après ce que je lis je me demande si tu n'as pas mis le même attribut name à tout tes champs noms, ce qui pourrait expliquer pourquoi il ne te conserve que le dernier.
__________________
Shiv@ Skunk
Shiva Skunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 10h32   #3
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Par défaut reformulaire

Voici le code, c'est un exemple sur lequel je m'exerce pour apprendre. Merci de ton aide.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
	//Connexion à la base de données normalement dans un fichier config
	$hostname_test = "localhost";
 
	$database_test = "test2008";
 
	$username_test = "root";
 
	$password_test = "ysaline";
 
	$test = mysql_pconnect($hostname_test, $username_test, $password_test) or trigger_error(mysql_error(),E_USER_ERROR);
 
//Connexion à ma base
 
mysql_select_db($database_test, $test);
 
//initialisation de mon compteur
$comp = 1;
 
echo'	<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
 
	<tr>
 
	<td colspan="4"><div align="center"><h1>test 2008</H1></div><BR></td>
 
	</tr>
 
	<tr>
 
	<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
	while ($comp <= 5) //exemple pour cinq fois 
 
    		{
		echo '<input type="text" size="15" name="nom'.$comp'" value="" id="nom"><br>';//Champs de mon formulaire que j'index pour faciliter 
	    							      //l'enregistrement dans ma base de données
		echo '<input type="text" size="15" name="prénom'.$comp'" value="" id="prénom"><br>';
 
		$comp++;//Incrémentation du compteur $comp
 
		}
	echo '<input type="submit" value="Ok"/>
	      </form>
	      </tr>
	      </table>';
 
 
 
//Celle-ci foire total grave, l'enregistrement ne fonctionne pas.
$id = 0;
while (isset ($_POST['nom'.$id]))
	{
	$sql_test = 'INSERT INTO enregistrer VALUES(nom = '.$_POST['nom-'.$id].')';//enregistrement dans ma base
	mysql_query($sql_test);	
	$id++;
	echo $id;
	}
 
?>
Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 10h52   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
echo '<input type="text" size="15" name="nom'.$comp'" value="" id="nom"><br>';
remplace deja par :

Code :
echo '<input type="text" size="15" name="nom'.$comp.'" value="" id="nom"><br>';

lorsque tu concatene une chaine il faut utiliser l'operateur . des 2 cotés
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h01   #5
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Salut,

Oui je sais désolé c'est une erreur de tape, c'est un code que j'ai fait à la va vite pour exemple de ce à quoi je veux arrivé. Mais la remarque est pertinente, malgré tout le code ne fonctionne pas.

Et je ne comprend pas le pq ?

Merci,

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h05   #6
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
la aussi ya un probleme ensuite quand tu dis ca marche pas dis nous ton message d'erreur

ensuite ensuite utilise mysql_query()or die (mysql_error()); pour afficher les erreur retourne par mysql

ps: l'erreur du point tu la aussi pour le prénom et met id = 1 sinon tu ne rentreras jamais dans ton dernier while
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h28   #7
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Re,

J'ai réalisé les modifications je n'ai pas d'erreur mysql, mais rien ne se passe. Sauf que maintenant j'ai une série de chiffre qui s'affiche qui correspondent à la variable $id.

Voici le code modifié :

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
	//Connexion à la base de données normalement dans un fichier config
	$hostname_test = "localhost";
 
	$database_test = "test2008";
 
	$username_test = "root";
 
	$password_test = "ysaline";
 
	$test = mysql_pconnect($hostname_test, $username_test, $password_test) or trigger_error(mysql_error(),E_USER_ERROR);
 
//Connexion à ma base
 
mysql_select_db($database_test, $test);
 
//initialisation de mon compteur
$comp = 1;
 
echo'	<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
 
	<tr>
 
	<td colspan="4"><div align="center"><h1>test 2008</H1></div><BR></td>
 
	</tr>
 
	<tr>
 
	<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
	while ($comp <= 5) //exemple pour cinq fois 
 
    		{
		echo '<input type="text" size="15" name="nom'.$comp.'" value="" id="nom"><br>';//Champs de mon formulaire que j'index pour faciliter 
	    							      //l'enregistrement dans ma base de données
		echo '<input type="text" size="15" name="prénom'.$comp.'" value="" id="prénom"><br>';
 
		$comp++;//Incrémentation du compteur $comp
 
		}
	echo '<input type="submit" value="Ok"/>
	      </form>
	      </tr>
	      </table>';
 
 
 
//Celle-ci foire total grave, l'enregistrement ne fonctionne pas.
$id = 1;
while (isset ($_POST['nom'.$id]))
	{
	$sql_test = 'INSERT INTO enregistrer VALUES(nom = '.$_POST['nom-'.$id].')';//enregistrement dans ma base
	mysql_query or die (mysql_error($sql_test));	
	$id++;
	echo $id;
	}
 
?>
Merci pour ton aide, elle est précieuse.

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h31   #8
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
1
2
3
4
5
6
7
while (isset ($_POST['nom'.$id]))
{
$sql_test = 'INSERT INTO enregistrer VALUES(nom = '.$_POST['nom'.$id].')';//enregistrement dans ma base
mysql_query ($sql_test)or die (mysql_error());
$id++;
echo $id;
}
plutôt comme cela

ps: met ton code que tu nous montre entre les balises code
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h39   #9
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Effectivement comme cela j'ai une erreur, merci que voici :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Merci pour les infos, j'ai trouvé la balise code pour l'avenir.

Merci,

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h45   #10
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
SQL : insert
Code :
$sql_test = 'INSERT INTO enregistrer(nom) VALUES('.$_POST['nom'.$id].')';
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 11h51   #11
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Bonjour,

Un tout grand merci pour votre aide à tous, il y a du progrès mais maintenant j'ai cette erreur qui s'affiche :

Unknown column 'test' in 'field list'

or je comprend pas mes listes nom et prenom existent dans ma table ?

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h00   #12
Membre éclairé
 
Avatar de Shiva Skunk
 
Femme Hélène
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 326
Détails du profil
Informations personnelles :
Nom : Femme Hélène
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 326
Points : 317
Points : 317
La requête que tu exécutes est bien celle-là ? :
Code :
$sql_test = 'INSERT INTO enregistrer(nom) VALUES('.$_POST['nom'.$id].')';
peux-tu faire un pour voir quelle requête tu passes à mysql ?
__________________
Shiv@ Skunk
Shiva Skunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h06   #13
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Salut,

Je n'ai rien qui s'affiche , voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$id = 1;
while (isset ($_POST['nom'.$id]))
	{
	$sql_test = 'INSERT INTO enregistrer(nom) VALUES('.$_POST['nom'.$id].')';
	mysql_query ($sql_test) or die (mysql_error());	
	$id++;
	echo $sql_test;
	}
 
?>
Voici ce qui s'affiche :

Unknown column 'hhghj' in 'field list'

je n'y comprend rien, je débute en php, pas facile facile.

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h09   #14
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Si tu n'as rien qui s'affiche, c'est que les variables nom1, nom2, ... n'existent pas donc n'ont pas été postées...
Essaye d'ajouter un affichage du contenu de $_POST en début de script :
Code :
1
2
3
 echo '<pre>';
print_r($_POST);
echo '</pre>';
et vérifie qu'il y a bien nom1 dedans
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h15   #15
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Re,

Voici ou j'ai placé le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$id = 1;
while (isset ($_POST['nom'.$id]))
	{
	echo '<pre>';
	print_r($_POST);
	echo '</pre>';
	$sql_test = 'INSERT INTO enregistrer (nom) VALUES ('.$_POST['nom'.$id].')';
	mysql_query ($sql_test) or die (mysql_error());	
	$id++;
	echo $sql_test;
	}
 
?>
Et voici ce qu'il me retourne :

Array
(
[nom1] => test1
[prénom1] => test2
[nom2] => test3
[prénom2] => test4
[nom3] => test5
[prénom3] => test6
[nom4] => test7
[prénom4] => test8
[nom5] => test9
[prénom5] => test10
)

Cela me parrait correcte, pq il ne l'enregistre pas dans la base ?

Merci en tout cas j'apprend beaucoup et prend note de vos petit trucs et conseille.

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h23   #16
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
'INSERT INTO enregistrer (nom) VALUES ("'.$_POST['nom'.$id].'")';
essaye cela
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h27   #17
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Salut ,

Nickel, ca fonctionne un tout grand merci. Mais tu peux m'expliquer pq les " " on tout changé.

En tout cas c'est super sympa de votre part à tous de m'avoir aider, je comprend le code sauf la requête sql avec l'histoire des " ". Donc une petit explication serait super afin de comprendre.


Merci et bonne appétit

Stu76
Stu76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 12h30   #18
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
car tu dois mettre des guillemets quand c'est une chaine de caractères
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 13h27   #19
Membre du Club
 
Inscription : octobre 2005
Messages : 103
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : octobre 2005
Messages : 103
Points : 52
Points : 52
Merci pour l'info.

En tout cas vous êtes super sympa et je vous remercie de l'aide que vous m'avez apporté.

je vais pouvoir avancé dans mon apprentissage du PHP.

++


Stu76
Stu76 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 19h22.


 
 
 
 
Partenaires

Hébergement Web