Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Malib, Wistaro
Auteur Sujet: Champs select

Malib

Messages: 79

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. ^^
Publicité

Wistaro

Messages: 76

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

Messages: 79

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

Messages: 79

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

Messages: 76

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

Messages: 67

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

Messages: 79

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

Messages: 79

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

Messages: 76

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

Messages: 79

Okay! lol je vais faire sa alors Clin d'oeil

Malib

Messages: 79

Soit j'ai rien pigé ^^ soit sa fonctionne toujours pas Tire la langue même resultat ^^

Wistaro

Messages: 76

C'est quoi ton code ? 

Malib

Messages: 79

<?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"/>


Veuillez vous connecter ou créer un compte pour poster une réponse