Etablir une liste (avec index par lettre)

Kwintin
Invité n'ayant pas de compte PHPfrance

28 mars 2010, 20:29

Bonjour à tous,

Je tente d'afficher une liste de nom/prénom à partir d'un tableau MySQL. Jusque là, pas de problème.
Maintenant j'aimerais afficher (à la manière du répertoire iPhone par exemple), une ligne reprenant la première lettre des noms qui la suive...

Exemple :

A
ALBERT Michel
AMONT Christelle
B
BRAILLE Raymond
BZUKO Isabelle
D
DUPOLI Margaux

Remarquez que j'aimerais que la fonction PHP n'affiche pas de lettre si aucun des noms ne commence par cette lettre (ici C).
Pensez vous pouvoir me donner quelques éléments de réponse pour m'aider ?

Merci d'avance ;)

ViPHP
ViPHP | 5462 Messages

28 mars 2010, 20:32


Eléphant du PHP | 74 Messages

28 mars 2010, 20:46

tu peux faire comme sur le sujet donné par stealth35 mais aussi comme ça :
$result = mysql_query("SELECT nom, prenom, SUBSTRING(nom,1,1) as lettre FROM contact ORDER BY nom, prenom");
$arrNom = Array();
while($row = mysql_fetch_array($result)) //recup des infos dans un tableau indexé par la 1ere lettre du nom
{
$arrNom[$row["lettre"]][] = $row["nom"]." ".$row["prenom"];
}

//et là tu parcours $arrNom pour affichage
mais bon là tu stockes dans un tableau alorsque tu peux t'en passer ^^