Classer champ par ordre alphabétique

Répondre
Sammuel
le 08/02/2007 à 21:54
Sammuel
Bonjour,

Je rencontre un probleme au niveau de l'affichage d'un classement de noms par ordre croissant.

J'aimerais au final obtenir ca :

html
<h1>A</h1>
<ul>
<li>Alfred</li>
<li>Albert></li>
</ul>

<h1>B</h1>
<ul>
<li>Béber</li>
<li>Bob</li>
</ul>


etc...

Et pour le moment, cela affiche ca :

html
<h1>A</h1>
<ul>
<li>Alfred</li>
<li>Albert</li>

<h1>B</h1>
<ul>
<li>Béber</li>
<li>Bob</li>


etc...

Je n'arrive pas à afficher le </ul> en fin d'affichage de la liste des noms de chaque lettre.

Mon code est le suivant :

$req = mysql_query("SELECT id,nom,cle FROM categorie ORDER by nom");
$debut = '-1';

while($categorie = mysql_fetch_assoc($req)){

if($categorie["nom"]["0"] != $debut)
{
echo '<h1>'.ucfirst($categorie["nom"]["0"]).'</h1>
<ul>
';
$debut = $categorie["nom"]["0"];
}

echo '<li>'.$categorie["nom"].'</li>
';

}


J'ai pourtant essayer plein de truc pour tenter d'afficher le </ul> correctement en fin de liste, mais je n'y arrive pas smiley.

Si quelqu'un aurait une idée, merci de bien vouloir me dire comment procéder svp !
LA GLOBULE
le 08/02/2007 à 23:20
LA GLOBULE
<?php
$req = mysql_query("SELECT id,nom,cle FROM categorie ORDER by nom");

$debut = '-1';
$i = 0;

while ($categorie = mysql_fetch_assoc($req)) {

if ($categorie['nom']{0} != $debut) {
if ($i == 1) echo '</ul>';
else $i = 1;
echo '<h1>'.ucfirst($categorie['nom']{0}).'</h1><ul>';
$debut = $categorie['nom']{0};
}

echo '<li>'.$categorie['nom'].'</li>';
}
echo '</ul>';
?>
Sammuel
le 09/02/2007 à 01:05
Sammuel
Merci infiniment LA GLOBULE ! Cela fait un moment que je cherchais une solution :p

Je n'aurais jamais réussi sans ton aide :)

smiley
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours