Afficher le contenu d'une table par initiales
Résolu/Fermé
helpme
-
Modifié par jipicy le 2/06/2010 à 16:57
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 11 juin 2010 à 13:06
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 11 juin 2010 à 13:06
A voir également:
- Afficher le contenu d'une table par initiales
- Table ascii - Guide
- Table des matières word - Guide
- Word a trouvé du contenu illisible - Guide
- Afficher mot de passe wifi android - Guide
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
6 réponses
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
2 juin 2010 à 17:43
2 juin 2010 à 17:43
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 ;)
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
Modifié par Zep3k!GnO le 2/06/2010 à 18:52
Modifié par Zep3k!GnO le 2/06/2010 à 18:52
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
Gremy87
Messages postés
352
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
19 mars 2014
38
3 juin 2010 à 10:12
3 juin 2010 à 10:12
oui normal =>RESOLU
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
11 juin 2010 à 13:06
11 juin 2010 à 13:06
oui, dsl, copier/coller d'une classe.