[Souci] Récupérer une liste d'une BDD.

Petit nouveau ! | 1 Messages

14 mai 2014, 10:54

Bonjour,
j'ai un projet à réaliser pour mon année de BTS qui consiste à la création d'une plateforme de choix qui renvoie par exemple un son, le souci que j'ai, c'est que je ne parviens pas à récupérer les choix par une simple requête:

Code : Tout sélectionner

<p>Langue :<p> <form name="form_langue" method="post" action="index.php"> <select name="Select.Langue" size="10" multiple="multiple"> <option> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=lab_lang', 'root', ''); } catch(Exception $e) { die('Erreur : '. $e->getMessage()); } $reponse = $bdd->query('SELECT * FROM langue WHERE id=1'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=2'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=3'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=4'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=5'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=6'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=7'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=8'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=9'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=10'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=11'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=12'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=13'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ <option> <?php $reponse = $bdd->query('SELECT * FROM langue WHERE id=14'); while ($donnees = $reponse->fetch()) { echo $donnees['langue']; } ?> </option> __________________________________________________________ </form>
Le code n'est pas du tout optimisé, mais le souci est bien là, c'est illisible. J'ai cherché depuis Lundi comment réussir à récupérer une liste d'un coup sans passer d'élement par élément. Voici un screen récapitulatif
Image

Ce que je souhaiterai faire, c'est obtenir la liste de l'image par simplement une requête SQL et un peu de PHP dans la mesure du possible. Sans faire element par element en indiquant toujours un seul id pour un choix.

En espérant que j'ai été aussi clair que possible dans mon raisonnement,
Fox.

Eléphant du PHP | 422 Messages

14 mai 2014, 11:23

hello

il faut faire une req SQL qui récupère toute les langues et ensuite faire une boucle dessus pour créer tes options dans ton select

<?php

//connection à la BD
try
{
$bdd = new PDO('mysql:host=localhost;dbname=lab_lang', 'root', '');
}
catch(Exception $e)
{
   die('Erreur : '. $e->getMessage());
}

//requet SQL
$reponse = $bdd->query('SELECT * FROM langue');
$langue=array();
 while ($donnees = $reponse->fetch())
 {

 $langue[$donnees['id']]=$donnees['langue']; //récupère les langues et on index dans un tab avec les id
 }

//on construit le select
echo '<select name="Select.Langue" size="10" multiple="multiple">';
foreach($langue as $id=>$value){

   echo '<option value='.$id.'>'.$value.'</option>'; //avec les options
}
echo '</select>';

code pas testé

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mai 2014, 13:11

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

De plus l'emploi ( correct du bbcode est vivement encouragé, les boutons sont juste au dessus de la textarea).


Merci de prendre le temps de lire les règlements.
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 18 Messages

17 mai 2014, 12:03

Peux- tu nous donner la structure de ta table dans ta base de donnée ?