Champs select

Malib

Malib Le 24 avril 2016 à 15:40 (Édité le 25 janvier 2019 à 17:50)

Bonjour, je me retrouve face à un nouveau problème. Comment faire un champ de selection.... ou chaque ligne correspond à une entrée différente dans ma BDD... 

<select id="liste_planete">
<option ><?php echo $membreplanete['nom_planete'] ?></option>
<option ><?php echo $membreplanete['nom_planete'] ?></option>
</select>
 
<input type="text" style="display:none" id="liste_planete"/>


j'ai commencé par ca! Je reflechis encore en attendant. ^^
Wistaro

Wistaro Le 24 avril 2016 à 15:50 (Édité le 24 avril 2016 à 16:02)

Salut, 
Tu peux passer par une boucle. 
Exemple:
echo '<select id="liste_planete>';
while($membreplanete = $requete->fetch()){

echo '<option>';
echo $membreplanete['nom_planete'];
echo '</option>';
}
echo '</select>';
Malib

Malib Le 24 avril 2016 à 15:50

Alors enfaite la avec ma requete j'affiche tout les champs de la BDD et moi je veux afficher que ceux l'id membre.


<?php
         
               
               $tbplanetedeux = $bdd->query("SELECT * FROM planete");
               while($membreplanete = $tbplanetedeux->fetch())
                  
                  {
         ?>
         <select id="liste_planete">
            <option ><?php echo $membreplanete['nom_planete'] ?></option>
            <option ><?php echo $membreplanete['nom_planete'] ?></option>
         </select>
         <input type="text" style="display:none" id="liste_planete"/>
         <?php 
         
                  }
                  
                  ?>
         
Malib

Malib Le 24 avril 2016 à 15:55

Ok comme on a posté en même temps j'ai donc changé quelques trucs ^^

Car ma liste apparaissait bon nombre de fois xD le je viens de piger ^^ sa me met bien une ligne avec le choix de tous!

voila nouveau code de la liste par contre donc en fonction de l'id du membre que je n'arrive pas a faire

<br>
<select id="liste_planete">
         <?php
         
               
               $tbplanetedeux = $bdd->query("SELECT * FROM planete");
               while($membreplanete = $tbplanetedeux->fetch())
                  
                  {
         ?>
            <option ><?php echo $membreplanete['nom_planete'] ?></option>
         <?php 
         
                  }
                  
                  ?>
                           </select>
         <input type="text" style="display:none" id="liste_planete"/>
         
         </br>


Wistaro

Wistaro Le 24 avril 2016 à 16:01

Si tu veux sélectionner uniquement les planetes d'un certain ID, il faut que tu cibles ça au niveau de ta requête sql:


               $tbplanetedeux = $bdd->query("SELECT * FROM planete WHERE ID=$id_membre");

Enfin ici il vaudrais mieux utiliser les requêtes préparées:

$tbplanetedeux = $bdd->prepare("SELECT * FROM planete WHERE ID=?");
$tbplanetedeux->execute(array($id_membre));
$tbplanetedeux->close();
Aendawan

Aendawan Le 24 avril 2016 à 16:09

Pour la boucle, ceci est plus cours et moins gourmand

<select name="nom">
<?php   
   foreach ($data as $r)
   {
      echo '<option>' . $r['table'] . '</option>';
   }
?>
</select>
Malib

Malib Le 24 avril 2016 à 17:56

Merci pour la requete car je voyais pas torp comment la faire j'ai essayé plusieurs choses mais rien.

Okay je vais essayer ca! je vous tiens au courant. 
Malib

Malib Le 24 avril 2016 à 18:00

Bug total. J'ai mis donc la requete
$tbplanetedeux = $bdd->prepare("SELECT * FROM planete WHERE ID=?");
$tbplanetedeux->execute(array($id_membre));
$tbplanetedeux->close();
Cela me met aucune planete a selectionner. et tout le reste de la page ne s'affiche plus.
  • 1
  • 1
Wistaro

Wistaro Le 25 avril 2016 à 09:37 (Édité le 25 avril 2016 à 09:38)

C'est normal,  je t'ai pas donné le complet.
Là il faut qu'avant que tu closes, que tu fetch ta requête pour récupérer les données. 

Donc dans ton cas, il faut que tu mette ton close quand tu as terminé tes requêtes (ta boucle d'affichage) 
Malib

Malib Le 25 avril 2016 à 10:46

Okay! lol je vais faire sa alors 😉
Malib

Malib Le 25 avril 2016 à 11:26

Soit j'ai rien pigé ^^ soit sa fonctionne toujours pas 😋 même resultat ^^
Wistaro

Wistaro Le 25 avril 2016 à 13:44

C'est quoi ton code ? 
Malib

Malib Le 25 avril 2016 à 14:02

<?php
 
if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) /* permet de verifier si le membre est connecté ou non */
             
            {
 
                    $idmembre = intval($_SESSION['id']);
                    $reqmembre = $bdd->prepare("SELECT * FROM membre WHERE id = ? ");
                    $reqmembre->execute(array($idmembre));
                    $membre = $reqmembre->fetch();
                     
     
                    $tbplanete = $bdd->query("SELECT * FROM planete");
                    $membreplanete = $tbplanete->fetch();
                     
                                     
                     
                    /* var_dump($membreplanete['id']);  */
                     
                     
                    $idress = $membreplanete['id'];
                    $reqress = $bdd->prepare("SELECT * FROM ressource WHERE id_planete = ? ");
                    $reqress->execute(array($idress));
                    $userress = $reqress->fetch();
 
     
                     
                 
            }
            else /* Si le joueur n'est pas connecté, il est renvoyé sur l'accueil */
            {
                header("Location: ../index.php");
            }
 
?>  
 
<header> <!-- il contient quelques infos -->
            <?php
             
            include("../controleur/changement_planete.php");
             
            ?>
             
</header>
et dans mon include j'ai sa

<select id="liste_planete">
            <?php
             
     
                     
                    $tbplanetedeux = $bdd->query("SELECT * FROM planete");
                    while($membreplanete = $tbplanetedeux->fetch());
                     
                     
                     
                         
                        {
            ?>
 
                <option ><?php echo $membreplanete['nom_planete'] ?></option>
 
 
            <?php
             
                        }
                         
            ?>
</select>
 
<input type="submit" id="liste_planete"/>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte