Etablir une liste (avec index par lettre)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Etablir une liste (avec index par lettre)

Re: Etablir une liste (avec index par lettre)

par datesta » 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 ^^

Re: Etablir une liste (avec index par lettre)

par stealth35 » 28 mars 2010, 20:32

Etablir une liste (avec index par lettre)

par Kwintin » 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 ;)