Liste déroulantes dépendantes d'une base de données
Résolu
modemo2018
Messages postés
254
Statut
Membre
-
modemo2018 Messages postés 254 Statut Membre -
modemo2018 Messages postés 254 Statut Membre -
Bonjour,
Je suis entrain de créer un site et je voudrai faire une liste déroulante dynamique, voici le code:
Le problème est que lorsque je teste la BDD, rien s'affiche, qd j'enlève la conditions WHERE, la liste reconnais les données mais n'affiche toujours rien.
Quelqu'un peut-il me dire pourquoi mes infos de BDD ne s'affiche pas, quelqu'un peut-il m'aidé SVP?
Je suis entrain de créer un site et je voudrai faire une liste déroulante dynamique, voici le code:
<label class="font-weight-bold" for="fullname">Séléctionnez Matières </label>
<select name="nomat" id="nomat" class="form-control">
<?php
//recherche de la liste des matières de cete classe
$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
try
{
$req1 = $bdd->prepare('SELECT * FROM matiere WHERE nomat = ?');
$req1->execute(array($class));
//Somme des élèves de la classe
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
while($don = $req1->fetch()){ ?>
<option value="<?php echo $don['nomat']; ?>"> <?php $don['nomat']; ?></option>
<?php } ?>
</select>
Le problème est que lorsque je teste la BDD, rien s'affiche, qd j'enlève la conditions WHERE, la liste reconnais les données mais n'affiche toujours rien.
Quelqu'un peut-il me dire pourquoi mes infos de BDD ne s'affiche pas, quelqu'un peut-il m'aidé SVP?
1 réponse
-
Bonjour,
Si tu veux afficher la liste des matières d'une classe... pourquoi faire ton where sur le champ nomat ??
Je pense que ce que tu veux faire c'est ça$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL; if($class){ $sql = 'SELECT * FROM matiere WHERE class`class` = ?'; $datas = array($class); try{ $req = $bdd->prepare($sql); $req->execute($datas); $arrMat = $req->fetchAll(); //on stocke le résultat dans un array }catch(Exception $e){ die('Erreur : '.$e->getMessage()); } }else{ echo "<br><span>Variable 'class' vide !</span>"; } ?> <label class="font-weight-bold" for="fullname">Séléctionnez Matières </label> <select name="nomat" id="nomat" class="form-control"> <?php if(!empty($arrMat)){ foreach($arrMat as $don){ echo "<option value='".$don['idmat']."'>".$don['nomat']."</option>"; } } ?> </select>
-
-
Voilà l'erreur qu'il m'affiche :
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`class` = 'CM2 '' at line 1
comment puis-je faire pour corriger une telle erreur, stp? -
-