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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    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 : 972
Taille : 48,9 Ko

    Nom : Capture2.PNG
Affichages : 871
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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    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 : 1009
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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 35
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    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]

+ 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