Liste déroulantes dépendantes d'une base de données

Résolu
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -  
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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?
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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>

0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai essayé le code ça n'affiche pas le contenu de ma BDD
0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2
 
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?
0
modemo2018 Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   2
 
C'est bon, j'ai réglé l'erreur, tout s'affiche normalemen super merci Jordan.
L'erreur s'etait cette syntaxe

" class`class` = ?"
0