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 :

affichage du contenu de BD MySQL sous forme de liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut affichage du contenu de BD MySQL sous forme de liste déroulante
    Bonjour,


    J'aimerais intégrer une liste déroulante dans ma page web qui fait appel à une table MySQL. Mon code ne marche pas, pouvez-vous me dire pourquoi ?

    Dans le .HTML, j'ai placé :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="liste_deroulante.php" method="post">
    	<select>
    		<option>Choisir un site
    	</select>
    </form>

    Dans le fichier liste_deroulante.php, j'ai mis :

    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
     <?php
    $connection = @mysql_connect("localhost",'root','');
    if (!$link){
    	echo 'Problème de connexion';
    } else {
    	echo 'Connexion réussie';
    }
     
    if(!@mysql_select_db('ma_base', $connection)){
    	echo 'Problème de connexion à la BD';
    }else{
    	echo 'Connexion réussie à la BD';
    }
     
    // Générer une liste déroulante : afficher le contenu d'1 table MySQL dans un menu de sélection 
    // Sélection des informations triées par ordre alphabétique 
    $sql = "SELECT nom_lieu FROM lieux ORDER BY nom_lieu"; 
     
    //Exécution de la Query
    $query = mysql_query($sql, $connexion);
     
    //Pour afficher le résultat
    while ($resultat = mysql_fetch_array($query)) {
    	echo $resultat['nom_lieu'];
    }
    Mais rien!!! merci.............


    En fait, je ne sais pas s'il faut mettre le code HTML de la liste déroulante dans le .HTML, ou dans le code .PHP


    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
    echo "<form>";
    echo "<select name=\"lieu\" size=\"\">";
    echo "<option value=\"1\">Choisir un site à visiter<option>"."\n";   
     
    //on met une boucle pour récupérer tous les élements de la colonne "nom_lieu"
    echo for ($numero=0; $numero<10; $numero++){
    	echo $resultat[$numero] . "<br />";
    }
    echo "<option value=".$resultat[0].">".$resultat[0]; 
    echo "</option>"."\n";
    }    
    echo "</select>"."\n";
    echo "</form>";
     
    ?>
    ?????

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le principe serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = mysql_query($sql, $connexion);
     echo '<select>';
    		while ($resultat = mysql_fetch_assoc($query)) {
    			echo '<option>' . $resultat['nom_lieu'] . '<option>';
    		}
    echo '</select>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut
    Bonjour,



    Merci, mais ça n'affiche rien...

    Si j'isole le .PHP, ça marche.

    Mais ça ne marche pas lorsqu'il est dans le dossier contenant le INDEX.HTML qui se réfère au .PHP.
    Pourquoi la référence dans les balises FORM ne suffisent pas ?

    La liaison .PHP et liste déroulante n'est pas faite. Doit-on utiliser du Javascript ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne comprends pas du tout tes questions
    le dossier contenant le INDEX.HTML qui se réfère au .PHP.
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut
    Bonjour,

    je m'explique : j'ai un dossier contenant

    - un fichier .HTML
    - un fichier .PHP qui comprend l'algorithme de connexion à MySQL et de récupération des données

    le .HTML contient un lien vers .PHP
    la liste déroulante doit s'afficher sur le .HTML
    ceci ne se fait pas.

    Si je sors le fichier .PHP du dossier, le .PHP affiche bien comme résultat la liste déroulante.

    Donc, il est possible que je ne comprenne pas, si je veux que la liste déroulante s'affiche sur la page .HTML, comment est-ce que je fais ?
    Comme précisé dans les anciens messages, j'ai rajouté :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="liste_deroulante.php" method="post">
    dans le .HTML.
    Il y a une incompatibilité de fichiers ? de code ?
    merci.......;;

  6. #6
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 94
    Par défaut
    Si tu as fait un copier coller (je tinvite a avorter cette pratique) du code de Sabotage, il se peut que ce soit la balise option non fermee.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $query = mysql_query($sql, $connexion);
     echo '<select>';
    		while ($resultat = mysql_fetch_assoc($query)) {
    			echo '<option>' . $resultat['nom_lieu'] . '</option>';
    		}
    echo '</select>';
    Si sa marche pas toujours sa se comporte comment? Tu lis quoi a lecran. Essaie de poster la totalite du code qui marche pas.
    Cordialement

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut
    la balise fermante est optionnelle pour OPTION

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Certes, mais c'est plutôt moche et valable uniquement en HTML, pas en xhtml, en revanche, l'attribut name du <select> est obligatoire si tu veux pouvoir récupérer une valeur en PHP...
    Ce qui confirme la remarque de Mstreatboy :
    je tinvite a avorter cette pratique
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    Bonjour,

    En premier lieu tu devrais renommer ta page index.html en index.php.

    même si la page ne contient pas de PHP, ça marchera quand même, et ça te permettra de rajouter du PHP si besoin, ce qui a l'air d'être le cas.

    A mon avis le mélange entre pages figées (html) et pages créées dynamiquement (le code html généré par le PHP) n'est pas bon, surtout si tu ne maîtrise pas ces techniques.

    Penses bien qu'une page HTML est envoyée "telle quelle au client" alors q'une page PHP envoie du code HTML généré par le serveur.

    Si ça ne suffit pas, joins nous une version simplifiée (mais qui comporte l'erreur) de tes 2 pages pour approfondir le pb.

    Cordialement

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/08/2012, 00h57
  2. Réponses: 3
    Dernier message: 20/01/2011, 10h33
  3. Réponses: 3
    Dernier message: 19/07/2009, 17h17
  4. [MySQL] Récupérer les données sous forme de liste déroulante
    Par loopback dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/12/2007, 16h10
  5. Réponses: 2
    Dernier message: 15/12/2006, 10h31

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