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

SQL Procédural MySQL Discussion :

[MySQL/PHP] Cmment lister les DataBase et les afficher dans ComboBox


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut [MySQL/PHP] Cmment lister les DataBase et les afficher dans ComboBox
    Bonjour tout le monde,

    Dans mon application web, j'ai besoin de faire des MàJ de base de données (monotable) à l'aide d'un fichier au format csv. Jusque là, pas de problemes. Sauf que pour des raisons d'ergonomie et de productivité, je souhaiterais mettre a disposition de l'utilisteur une ComboBox où serait lister le nom des bases de données. Malheuresement je n'ai rien trouvé qui me permet de faire ce listing.

    J'arrive à remplir une Combo avec des résultats de requete SQL, mais il me manque une fonction qui me listerait les base de données du serveur.

    Merci à vous pour votre aide !!

    Pour illustrer mon besoin, voilà ce que je veux faire, la même Combo que dans PHP MyAdmin :

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Bonjour,

    tu te connectes a ta base MySQL, puis tu lui passe ce query:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query="show databases";
    cela te retournera toutes les bases presentes.

  3. #3
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    mon dieu..... tellement simplissime.... j'ai honte

    Merci !!!

  4. #4
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    Bon, la requête passe sans probleme par contre je n'arrive pas a récuperer le résultat, j'obtiens Id Ressource #4.
    J'ai essayé deux methodes différentes, mais sans succès....

    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
    
                    //appel script de connexion
    
    		require('StartConnex.php');	
    
    		$requete="show databases";			
    		$resultat = mysql_query($requete);
    			
    		echo'<br><br>Choisissez votre Base de Données :<br><SELECT name = "DB">';
    			
    /////////////// j'ai testé cette methode :
    
    			foreach ($resultat as $database)
    			{			
    			echo '<option>'.$database.'</option>';
    			}
    				
    /////////////// ou cette methode :
    
    			while ($ligne = mysql_fetch_row($resultat));
    			{         
    			echo '<option>'.$ligne[0].'</option>';				
    			}
    				
    		echo "</SELECT><br><br>"
    ?>
    J'ai testé également avec mysql_fetch_array (dans la seconde methode, à la place de fetch_row), rien de mieux. Lorsque ma page s'affiche je n'ai aucune erreurs, quelle que soit la façon dont j'opere.

    Je pense que c'est réelement un truc tout bête, mais venant du monde merveilleux d'ASP DotNet, je patauge... je patauge....

    Une idée ?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Je ne comprends pas ton erreur. Le script suivant fonctionne :
    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('developpez');
     
    $sql = 'SHOW DATABASES';
     
    $result = mysql_query($sql)
        or die(mysql_error());
     
    echo '<select>';
    while($row = mysql_fetch_row($result))
    {
        echo '<option value="'.$row[0].'">'.$row[0].'</option>'."\n";
    }
    echo '</select>';
     
    ?>
    La structure foreach ne fonctionne que pour les tableaux (type array), pas pour les ressources. Souviens-toi qu'une ressource telle que celle-ci est dans le socket, pas encore en mémoire. C'est pour cela que les fonctions s'appellent _fetch_ : il faut aller les lire dans le socket avant de pouvoir les utiliser.

  6. #6
    Membre confirmé Avatar de JFKen
    Profil pro
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    Salut Yogui et merci pour ton code.

    Effectivement je ne trouve pas d'où vient l'erreur... mon code était identique au tiens, sauf qua je ne faisais pas de selection de base de données. J'ai donc rajouté mysql_select_db('UneBaseExistante') pour avoir un code identique, ça ne change rien. J'ai pourtant presque une dizaine de bases sur le serveur !

    La seule explication possible que je vois serait une configuration, du genre qui m'empeche d'executer la requête SHOW DATABASES en dehors de phpMyAdmin.
    Mais si c'était le cas je devrais avoir un message d'erreur u genre "Vous n'etes pas autorisé à..... ".

    Je suis vraiment paumé !

    Edit : j'ai copié ce code dans un nouveau fichier php piur etre sûr que ce soit pas le reste du code qui serait en case, même resultat.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 10h03
  2. Réponses: 5
    Dernier message: 31/03/2011, 12h15
  3. Réponses: 8
    Dernier message: 18/11/2006, 22h06

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