Se connecter avec
S'enregistrer | Connectez-vous

Affichage dans tableaux alphabétiquement

Dernière réponse : dans Programmation

Bonjour à tous,

J'aurais besoin d'un peu d'aide pour développer un petit code.

Mise en situation :
Je suis en train de faire une encyclopédie.
Toutes mes fiches se trouvent dans une table :
==> site_ency <==
-> id
-> titre
-> etc
Donc ce que je veux faire c'est une page pour lister toutes mes fiches dans des tableaux, avec chaque tableau correspondant à une lettre de l'alphabet.


Ce que je veux afficher :
Je vous ai fait une tite image exemple pour mieux visualiser :



Comment je suis parti :
  1. $sql0="SELECT id, titre FROM site_ency ORDER BY titre";
  2. $req0=mysql_query($sql0) or die('Erreur SQL0 !<br>'.$sql0.'<br>'.mysql_error());
  3. while($data0 = mysql_fetch_assoc($req0))
  4. {
  5. switch(substr($data0['titre'],0,1))
  6. {
  7. case "a":
  8. $lettre='a';
  9. $list.='-> <a class="l" href="#.php?id='.$data0['id'].'">'.$data0['titre'].'</a><br>';break;
  10. case "b":
  11. $lettre='b';
  12. $list.='-> <a class="l" href="#.php?id='.$data0['id'].'">'.$data0['titre'].'</a><br>';break;
  13. case "c":
  14. $lettre='c;
  15. $list.='-> <a class="l" href="#.php?id='.$data0['id'].'">'.$data0['titre'].'</a><br>';break;
  16. // Pih autant de case qu'il y a de lettre dans l'alphabet...
  17. }
  18. }


Si je n'avais pas le design à respecter ca serait parfait, et c'est là où tout se complique :cry: 

Donc au début je mettais dit tu fais une fonction qui va te sortir le design :
  1. function afflettre($lettre,$list)
  2. {
  3. if(empty($list))
  4. {
  5. return "";
  6. }
  7. else
  8. {
  9. return '
  10. <table border="0" cellspacing="0" cellpadding="0" align="center">
  11. <tr>
  12. <td><img border="0" src="#/'.$lettre.'.gif" /></td>
  13. </tr>
  14. <tr>
  15. <td>'.$list.'</td>
  16. </tr>
  17. </table><p>';
  18. }
  19. }


Pih là je me suis retrouvé bloqué, impossible d'insérer ma fonction où que ce soit... (l'idéal aurait été derrière chaque "break" mais malheureusement ca ne se fait pas :non: 


Maintenant je déprime :
Me reste plus qu'à espérer que quelqu'un puisse m'aider car là ca me bloque totalement, toute aide pour me montrer comment régler mon problème sur ce que j'ai commencé à faire ou sur une toute autre voie n'est pas de refus !!!


PS :
Pour vous expliquer mon problème je vous ai fait un tableau tout simple mais au final c'est un design un peu recherché.
Lassé par la pub ? Créez un compte
Expert Programmation

Moi je ne ferais pas comme ça :o  Je gèrerais plutôt une rupture.
Je n'y connais rien en PHP, mais autrefois en COBOL, on faisait ça :

  1. Si data <- Fetch Alors
  2. Lettre = data(Titre).PremièreLettre
  3. LettrePrécédente <- Lettre
  4. Faire le début de la présentation d'un bloc.
  5. Afficher en GROS Lettre
  6. Afficher la ligne
  7.  
  8. TantQue data <- Fetch
  9. Lettre = data(Titre).PremièreLettre
  10. Si Lettre <> LettrePrécédente Alors <<== C'est ce qu'on appelle la rupture
  11. LettrePrécédente <- Lettre
  12. Faire la fin de la présentation d'un bloc.
  13. Faire le début de la présentation d'un bloc.
  14. Afficher en GROS Lettre
  15. Fin Si
  16. Afficher la ligne
  17. Fin TantQue
  18. Faire la fin de la présentation d'un bloc.
  19. Fin Si
Lassé par la pub ? Créez un compte