Bonsoir, je me demandais comment créer une liste déroulante à partir de ma base de données... Donc j'ai par exemple catégorie Benjamins et puis des sous classes qui font partie de benjamin, vous comprendrez peut-etre mieux avec une image...
Je ne sais pas vraiment comment commencé, quelqu'un aurait une idée?
Merci d'avance!
image:
J'ai trouvé la solution les potos, voici le bon code:
$query = "SELECT id, categorie, equipe FROM equipes ORDER BY categorie, equipe";
$categ = "";
echo "<select>";
foreach($pdo->query($query) as $row) {
if ($categ != $row['categorie']) {
// rupture de categorie
if ($categ !== "") { // s'il y avait un groupe ouvert, on le ferme
echo "</optgroup>";
}
echo "<optgroup label='" . $row['categorie'] . "'>";
$categ = $row['categorie'];
}
echo "<option value='" . $row['id'] . "'>" . $row['equipe'] . "</option>";
}
echo "</optgroup>";
echo "</select>";
Comment est organisé ta base de données ?
Je pense que ça pourrait nous donner une indication pour t'aider ^^
A partir de l'image elle ressemble a ceci:
id | catégorie | équipe
1 | HOMMES : U18| HU18A
2 | HOMMES : U18| HU18B
3 | HOMMES : U16| HU16A
4 | HOMMES : U16| HU16B
5 | HOMMES : U16| HU16C
6 | HOMMES : U16| HU16D
...
Ca t'aide?
Bonjour Blackandyellow,
Tu devrais pouvoir t'en tirer en triant tes équipes par catégorie puis en gérant les ruptures de catégorie.
Pour les groupes, il y a la balise optgroup qui fait ça (voir ici)
$query = "SELECT id, categorie, equipe FROM equipes ORDER BY categorie, equipe";
$categ = "";
echo "<select>";
foreach($pdo->query($query) as $row) {
if ($categ != $row['categorie']) {
// rupture de categorie
if ($categ !== "") { // s'il y avait un groupe ouvert, on le ferme
echo "</optgroup>";
}
echo "<optgroup label='" . $row['categorie'] . "'>"
$categ = $row['categorie'];
}
echo "<option value='" . $row['id'] . "'>" . $row['equipe'] . "</option>";
}
echo "</optgroup>";
echo "</select>";
Merci bcp pour ce que tu as déjà fait mais j'ai juste un petit problème...
La liste n'affiche que ca:
Et dans ma base de données il y a ca:
id | catégorie | équipe
1 | cadets| Julien
2 | cadets| Bastien
3 | minimes| Sylvain
Je ne vois pas d'ou le problème pourrait venir
Biensur, voila:
<select>
<optgroup label="Cadets">
<option value="3>Adrien</option>
<option value=" 5="">Benjamins</option>
<option value="1>Gaëtan</option>
<option value=" 4="">Gaëtan</option>
</optgroup>
</select>
Il manque la quote fermante après value (j'ai édité mon code)
Pour les groupes manquant, la rupture n'est pas détectée
as-tu recopié mon code tel quel ?