Afficher le contenu d'une table par initiales
Résolu
helpme
-
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Afficher le contenu d'une table par initiales
- Table ascii - Guide
- Table des matières word - Guide
- Afficher appdata - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Table des caractères - Guide
6 réponses
Salut, j'ai l'impression que tu te prends pas mal la tête pour cette histoire de lettre, voilà comment je le ferai à ta place :
Plus la peine de stocker la première lettre en BDD ;)
Bon courage !
<?php $req = $bdd->prepare('SELECT id, annee, nomgroupe, nomalbum, initiale FROM musicreviews WHERE lang = :lang ORDER BY nomgroupe, annee ASC'); $req->execute(array('lang' => $lang)); $sFirstLetter = ''; while ($donnees = $req->fetch()) { $sGroupeFirstLetter = strtoupper(substr($donnees['nomgroupe'],0, 1)); if( $sGroupeFirstLetter != $sFirstLetter){ ?> <br/><strong><? echo $sGroupeFirstLetter;?></strong> <?php } ?> <a style="margin-left:2%;" href="musicreviewspage.php?id=<?php echo $donnees['id']; ?>"> <?php echo $donnees['nomgroupe']." - ".$donnees['nomalbum']."<br/>"; ?> </a> <?php $sFirstLetter = $sGroupeFirstLetter; } ?>
Plus la peine de stocker la première lettre en BDD ;)
Bon courage !
Salut,
Merci, ton code m'aide beaucoup !
Mais il reste deux problèmes :
- comment faire une catégorie pour regrouper les chiffres et les caractères spéciaux (#'_...) ?
- comment faire pour que dans le cas où l'initiale serait É ou À (ou autre), il la mette respectivement dans "E" ou "A" et pas dans une autre catégorie ?
Merci d'avance ;)
A+
EDIT : excuse les fautes, je ne m'étais pas relu ;)
Merci, ton code m'aide beaucoup !
Mais il reste deux problèmes :
- comment faire une catégorie pour regrouper les chiffres et les caractères spéciaux (#'_...) ?
- comment faire pour que dans le cas où l'initiale serait É ou À (ou autre), il la mette respectivement dans "E" ou "A" et pas dans une autre catégorie ?
Merci d'avance ;)
A+
EDIT : excuse les fautes, je ne m'étais pas relu ;)
Re, voici le code modifié,
j'ai rajouté la fonction stripAccent qui comme son nom l'indique vire les accents et j'ai fait une petite modif la catégorie "numérique et autres" on va dire :
EnJoY !
P.S:code non testé ecrit de tête, mais ça devrait le faire ;)
j'ai rajouté la fonction stripAccent qui comme son nom l'indique vire les accents et j'ai fait une petite modif la catégorie "numérique et autres" on va dire :
<?php private function stripAccents($sString){ return strtr($sString,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY'); } $req = $bdd->prepare('SELECT id, annee, nomgroupe, nomalbum, initiale FROM musicreviews WHERE lang = :lang ORDER BY nomgroupe, annee ASC'); $req->execute(array('lang' => $lang)); $sFirstLetter = ''; while ($donnees = $req->fetch()) { $sGroupeFirstLetter = strtoupper(stripAccents(substr($donnees['nomgroupe'],0, 1))); if(!ctype_alpha($sGroupeFirstLetter)){ $sGroupeFirstLetter = '0 - 9 #'; //Mets ici le titre de ta catégorie foure-tout } if( $sGroupeFirstLetter != $sFirstLetter){ ?> <br/><strong><? echo $sGroupeFirstLetter;?></strong> <?php } ?> <a style="margin-left:2%;" href="musicreviewspage.php?id=<?php echo $donnees['id']; ?>"> <?php echo $donnees['nomgroupe']." - ".$donnees['nomalbum']."<br/>"; ?> </a> <?php $sFirstLetter = $sGroupeFirstLetter; } ?>
EnJoY !
P.S:code non testé ecrit de tête, mais ça devrait le faire ;)
M-E-R-C-I !!
Il y a une légère erreur au niveau du "private function" par contre, si on met le "private" il affiche "Parse error", si on l'enlève et qu'on ne laisse que "function" c'est bon. Normal ?
A+
Il y a une légère erreur au niveau du "private function" par contre, si on met le "private" il affiche "Parse error", si on l'enlève et qu'on ne laisse que "function" c'est bon. Normal ?
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question