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

PHP & Base de données Discussion :

liste déroulante sur bdd récupération d'une valeur [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Points : 30
    Points
    30
    Par défaut liste déroulante sur bdd récupération d'une valeur
    Bonjour à tous j'espère qu'une personne pourra me répondre et que j'arriverai à bien m'exprimer.

    Voilà j'ai un petit formulaire qui une liste déroulante cette liste déroulante prend ses valeurs dans une bdd qui s'appelle "etablissement" et d'une table qui s'appelle "eta" jusque là pas de soucis. Sauf que je voudrais maintenant prendre la valeur de la liste déroulante et qu'elle se mette dans une autre table qui s'appelle "classe". Dans mes deux table il y a le champ "nomEta" et les deux champs sont lié enfin la clé étrangère dans la table "classe" est "nomEta". Le soucis c'est quand je clique sur Envoyer ben on dirai que ça marche car aucune erreur de mise mais je ne vois rien dans ma table ensuite.

    Je vous mets le code que j'utilise et les tables j'espère que vous pourrez m'aidez.

    Merci d'avance

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    <body>
     
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded" >
    <fieldset>
    <legend>Classe</legend>
    <table>
    </tr>
    <tr>
    <td>Nom classe</td><td><input type="text" name="nomClasse" maxlength="60" /></td>
    </tr>
    <br/>
    <tr>
    <td>Etablissement</td>
    <td>
    <?php
     
    // Affiche les resultat d'un requete dans une liste déroulante
    echo "<select name='et'>";
     
    $connection=mysql_pconnect("localhost","root","") or die('erreur');
    $db = mysql_select_db("etablissement", $connection) or die ("erreur");
     
    $requete=mysql_query("SELECT nomEta FROM eta");
    $nombrelignes = mysql_numrows($requete);
    for ($i=0;$i<$nombrelignes;$i++) {
    $nom = mysql_result($requete,$i);
    echo "<option value='etab'> $nom </option>";
    }
     
    echo '</select>';
    ?> 
    </td>
    </tr>
    <br/>
    <tr>
    <td><input type="reset" value="Effacer" /></td>
    <td><input type="submit" value="Envoyer" /></td>
    </tr>
    </table>
    </fieldset>
    </form>
     
    <?php
    include ('connex.inc.php');
    if(!empty($_POST['nomClasse'])&& !empty($_POST['etab']))
    {
    	$idClasse="\N";
    	$nomClasse=$_POST['nomClasse'];
     
    	$requete="INSERT INTO classe VALUES('$idClasse','$nomClasse','$nom')";
    	$idcom=connex('etablissement','pass');
    	$result=mysql_query($requete,$idcom);
    	mysql_close($idcom);
    	if(!$result)
    	{
    		echo "<h2>Erreur d'insertion</h2>";
    	}
    	else
    	{
    		echo "<script type=\"text/javascript\">
    		alert ('Votre établissement est bien enregistré')</script>";
    	}
    }
    else 
    {
    	"Formulaire à compléter";
    }
     
     
    ?>
     
    </body>
    Nom : Capture1.PNG
Affichages : 964
Taille : 48,9 Ko

    Nom : Capture2.PNG
Affichages : 861
Taille : 39,9 Ko

  2. #2
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je te conseille de faire un var_dump($_POST); histoire de voir ce que te renvoie réellement ton formulaire.

    Sinon, je trouve la construction de ta liste déroulante bizarre : toutes tes options ont la même valeur ? (rappel : l'attribut value de la balise option est la valeur qui est envoyée par le formulaire)
    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]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Merci de ta réponse et dsl de mon temps de réponse.

    Donc j'ai essayé ce qui me donne :

    array
    'nomClasse' => string '3A' (length=2)
    'et' => string 'etab' (length=4)

    en image ici : Nom : Capture3.PNG
Affichages : 995
Taille : 8,0 Ko

    Pour ma liste déroulante j'ai pensé (car je suis débutant mais bon ça se voit ) que de mettre une valeur me permettrais de récupérer la valeur qui est écrite dans la liste déroulante.Mais j'ai changé un partis de mon code pour voir mais j'ai toujours le même résultats rien ne va dans la table mais vu que je ne n'arrive pas à récupérer la bonne valeur ça venir qu'il ne se passe rien dans phpmyadmin.

    Donc en gros que faire pour lui dire incrémente mon champ nomEta.

    Voilà le code changer à la ligne 49

    Code php : 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <body>
     
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded" >
    <fieldset>
    <legend>Classe</legend>
    <table>
    </tr>
    <tr>
    <td>Nom classe</td><td><input type="text" name="nomClasse" maxlength="60" /></td>
    </tr>
    <br/>
    <tr>
    <td>Etablissement</td>
    <td>
    <?php
     
    // Affiche les resultat d'un requete dans une liste déroulante
    echo "<select name='et'>";
     
    $connection=mysql_pconnect("localhost","root","") or die('erreur');
    $db = mysql_select_db("etablissement", $connection) or die ("erreur");
     
    $requete=mysql_query("SELECT nomEta FROM eta");
    $nombrelignes = mysql_numrows($requete);
    for ($i=0;$i<$nombrelignes;$i++) {
    $nom = mysql_result($requete,$i);
    echo "<option value='etab'> $nom </option>";
    }
     
    echo '</select>';
    ?> 
    </td>
    </tr>
    <br/>
    <tr>
    <td><input type="reset" value="Effacer" /></td>
    <td><input type="submit" value="Envoyer" /></td>
    </tr>
    </table>
    </fieldset>
    </form>
     
    <?php
    include ('connex.inc.php');
    if(!empty($_POST['nomClasse'])&& !empty($_POST['etab']))
    {
    	$idClasse="\N";
    	$nomClasse=$_POST['nomClasse'];
    	$etab=$_POST['etab'];
    	$requete="INSERT INTO classe VALUES('$idClasse','$nomClasse','$etab')";
    	$idcom=connex('etablissement','pass');
    	$result=mysql_query($requete,$idcom);
    	mysql_close($idcom);
    	if(!$result)
    	{
    		echo "<h2>Erreur d'insertion</h2>";
    	}
    	else
    	{
    		echo "<script type=\"text/javascript\">
    		alert ('Votre établissement est bien enregistré')</script>";
    	}
    }
    else 
    {
    	"Formulaire à compléter";
    }
     
     var_dump($_POST);
    ?>
     
    </body>

  4. #4
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Regarde bien : ton formulaire te renvoie une valeur pour $_POST['et'] et tu essayes de lire $_POST['etab']. Le plus simple est de changer le nom de ta liste déroulante pour coordonner les deux...
    Et pour récupérer la valeur affichée dans une liste déroulante, il faut mettre la même valeur dans value.

    Ce qui donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Affiche les resultat d'un requete dans une liste déroulante
    echo '<select name="etab">';
     
    $connection = mysql_connect('localhost','root','') or die('erreur');
    $db = mysql_select_db('etablissement', $connection) or die ('erreur');
     
    $requete = mysql_query('SELECT nomEta FROM eta');
    $nombrelignes = mysql_numrows($requete);
    for ($i=0; $i<$nombrelignes; $i++) {
    	$nom = mysql_result($requete,$i);
    	echo '<option value="'.$nom.'"> '.$nom.' </option>';
    }
     
    echo '</select>';
    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]

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Nickel merci de m'avoir fait voir ça je ne connaissais pas j'espère que ça pourra aussi servir a d'autres. Un grand merci en particulier à toi Célira.

    Problème résolu. ^^

  6. #6
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Un petit clic sur alors
    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]

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Celira Voir le message
    Un petit clic sur alors
    Et n'oublies pas le bon point pour la dame , ça compte.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Hé oui le bon point pour la dame voilà j'ai mis désolé je savais que j''avais oublié de cliquer dessus.

    Bonne journée

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

Discussions similaires

  1. [XL-2007] Récupérer valeurs d'une colonne vers une liste déroulante sur autre colonne d'une nouvelle feuille
    Par redhotchilipeppers dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/07/2014, 17h26
  2. Réponses: 11
    Dernier message: 29/11/2010, 16h44
  3. Réponses: 6
    Dernier message: 02/06/2010, 09h40
  4. [MySQL] Indexer une liste déroulante sur le champ d'une table
    Par RootsRagga dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/12/2008, 21h39
  5. Réponses: 4
    Dernier message: 20/12/2007, 10h40

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