IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lister le contenu d'un POST


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    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

  2. #2
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    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.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut reformulaire
    Voici le code, c'est un exemple sur lequel je m'exerce pour apprendre. Merci de ton aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="text" size="15" name="nom'.$comp'" value="" id="nom"><br>';
    remplace deja par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    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

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    SQL : insert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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

  12. #12
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    La requête que tu exécutes est bien celle-là ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_test = 'INSERT INTO enregistrer(nom) VALUES('.$_POST['nom'.$id].')';
    peux-tu faire un pour voir quelle requête tu passes à mysql ?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Salut,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    Re,

    Voici ou j'ai placé le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'INSERT INTO enregistrer (nom) VALUES ("'.$_POST['nom'.$id].'")';
    essaye cela

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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

  18. #18
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    car tu dois mettre des guillemets quand c'est une chaine de caractères

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 112
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lister le contenu d'un dossier dans une ListBox
    Par zidenne dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2005, 12h51
  2. Lister le contenu d'un répertoire
    Par rob_57 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2005, 19h16
  3. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23
  4. lister le contenu d'un serveur ftp avec NMFTP
    Par jackson dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/02/2005, 17h42
  5. Lister le contenu d'une table sans connaitre ses champs
    Par Google.be dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 30/03/2004, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo