Affichage de données avec un menu déroulant variable
Bonjour,
Voilà, je débute en PHP et MySQL, mon site(en local) devrait d'ici l'année prochaine me servir à collecter des informations pour l'évaluation d'élèves. Si j'arrive à le mettre au point, je compte bien partager cette ressource avec tous mes collègues.
L'utilisateur entre ses élèves dans une table eleves via une interface en PHP :
id , nom , prenom , classe
Pour le moment tout va bien, j'ai suivi les cours en ligne.
La question de l'affichage de ces données n'est pas un problème en soit.
La difficulté est là :
Je souhaiterai effectuer un affichage par classe, donc ma requête ne doit extraire que les noms des élèves correspondant à la classe selectionnée dans le menu déroulant. Mais le problème, c'est que ce qui a été entrée dans la colonne "classe" de ma table "eleves" est potentiellement variable.
Je suppose que je dois exploiter : <option value=" '.$array['classe'].' " , mais comment ?
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<?php
include("connectbase.php"); // prise en compte du fichier de connexion à a la base de donnée
connectevaluation(); //connexion à la base de donnée
?>
<html>
<head><title>Visualiser les eleves saisis</title><head>
<body>
<form name="select" method="post" action="read01.php">
<select name="choix">
<?php
//Affichage des classes insérées dans la base de donnée par l'utilisateur
$sql = mysql_query("SELECT distinct classe FROM eleves;") or die (mysql_error());
if ($sql) {
while ($array = mysql_fetch_assoc($sql)) {
if ($choix == $array["id"]) {
echo '<option value="' . $array['id'] . '" selected>' . $array['classe'] . '</option>';
}
else {
echo '<option value="'.$array['id'] . '">' . $array['classe'] . '</option>';
}
}
}
?>
</select>
<input type="submit" name="valider" value="OK">
</form>
</body>
</html>
<?php
//Action après selection de la classe et clic sur le bouton "ok"
if(isset($_POST['valider'])) {
$sql = "SELECT * FROM eleves WHERE classe='$choix' ORDER BY nom";
$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
while ($data = mysql_fetch_array($req)) {
echo '<b>'.$data['nom'].'</b> '.$data['prenom'].'<br/>'; //affiche ce qui a été récupéré
}
}
mysql_close(); // on ferme la connexion
mysql_free_result ; //on libère la mémoire si les données ne sont plus utiles pour la suite
?> |
Merci, j'espère avoir été clair dans mes propos.