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 :

Alimenter une balise select


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Par défaut Alimenter une balise select
    Bonjour tout le monde.

    Je pense bien que ce sujet à déjà été traité plusieurs fois, mais j'ai beau tester plusieurs morceaux de codes, aucun ne fonctionne, alors je créé un sujet pour vous montrer mon code et espérer que vous trouviez mes erreurs.

    J'explique le truc:
    Je suis en stage dans une boite qui voudrait un site dans lequel j'intègre un formulaire avec une liste déroulante, et le contenu de cette liste est tiré d'une base MySQL.

    Le truc c'est que rien ne s'affiche dans ma liste. J'ai juste un cadre blanc vide quand je la déroule. Genre une simple ligne avec rien dedans.

    Alors je me demandais si c'était ma requête qui foirait, ma syntaxe, mon php ou quoi.

    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
    <?php
    mysql_connect("localhost", "root");
    mysql_select_db("accueilpro");
    //$recherche = mysql_query('SELECT fonctionUser FROM users') ; 
    $query = sprintf("SELECT fonctionUser FROM users");
    $result = mysql_query($query);
    if (!$result) {
        $message  = 'Requête invalide : ' . mysql_error() . "\n";
        $message .= 'Requête complète : ' . $query;
        die($message);
    }
    while ($row=mysql_fetch_array($result)) { 
    ?> 
    	<option value="<?php echo $row['fonctionUser'] ?>"><?php echo $row['fonctionUser'];?></option> 
    <?php 
    	print_r($row);
    } 
    ?>

    Ca fait 3 jours que je bute dessus, et ça m'énerve, alors je viens vers vous pour me sortir de l'impasse et obtenir un regard extérieur.
    Je vous remercie

  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
    Que donne le print_r ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Par défaut
    Justement, il ne me retourne rien.

  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
    Rien comme un tableau vide ? ou rien rien ?

    Fais un var_dump() plutôt, c'est plus facile a reperer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Par défaut
    J4ai fait quelques modifications, et maintenant, à partir de la ligne 21, il ne m'interprète plus le code, il me l'affiche brute de décoffrage dans ma liste déroulante.

    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
     
    <?php
     
    	mysql_connect("localhost", "root", "");
     
    	mysql_select_db(accueilpro, $Idc);
     
    	//$recherche = mysql_query('SELECT fonctionUser FROM users') ; 
     
     
    	$query = sprintf("SELECT fonctionUser FROM users");
    	$result = mysql_query($query, $Idc);
    	$NbFonction = mysql_num_rows($result);
     
     
     
    	while ($row=mysql_fetch_array($result)) 
    	{ 
     
    		echo ('<option value="' . $row[ "fonctionUser" ] . '" >'); 
    			echo ($row["fonctionUser"]); 
    		echo ('</option>');
     
     
    	} 
     var_dump();
    ?>

  6. #6
    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 suppose que tu as des apostrophes dans tes intitulés de fonctions.
    Le mieux serait d'avoir une table de référence des fonctions utilisateurs :

    id - fonction
    1 - directeur
    2 - manager
    3 - opérationnel

    et dans ta table users
    nom - fonction_id
    Durand - 1
    Dupont - 3

    Cela permet de ne manipuler que les id.

    Sinon en l'état :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="' . addslashes($row[ "fonctionUser" ]) . '" >' . htmlspecialchars($row["fonctionUser"]) . '</option>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    lorsque tu lance ta page dans le browser, si tu fait click droit "afficher la source", tu obtient quoi ?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="' . $row[ "fonctionUser" ] . '" >' . $row["fonctionUser"]. '</option>';

    En fait, c'est la simple quote juste après la fermeture de la première balise option qui fout la merde.
    Il la prend comme fermant toute la ligne echo, ne la rouvre pas pour la balise fermante d'option, et fait donc sauté la fermeture de la boucle while et par conséquent la fermeture de la balise php.

    Après, pourquoi il me la rouvre pas, c'est une très bone question.

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

Discussions similaires

  1. [MySQL] Alimenter la balise SELECT par des données d'une bdd MySQL
    Par af.zakaria dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/04/2013, 04h12
  2. title sur une balise select
    Par delas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 16/06/2006, 11h37
  3. recupere valeur d'une balise select
    Par naourass dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/11/2005, 10h18
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. Réponses: 4
    Dernier message: 18/11/2003, 16h08

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