Affichage d un glossaire en PHP SQL

Fermé
sirjenny Messages postés 2 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 16 septembre 2013 - 4 févr. 2012 à 17:01
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 4 févr. 2012 à 19:19
Bonjour,

Je souhaite afficher les résultats de ma requete (des noms de marques), en les listant par ordre alphabltique et sous la lettre qui y correspond.
Ex:

A
Alpha romeo
Ason
B
Bilso
...

Voici mon code actuel:

 $bdd = mysql_connect('localhost:8888', 'root', 'root');
 mysql_select_db('fn');

 
    // tableau des lettres de l'alphabet 
$tabLettre = array('A', 'B', 'C', 'D', 'E', 'F','G','H','I','J','K','L');

// le tableau suivant simule les résultats de la requête
$tabInfos ='';
$query = mysql_query('SELECT DISTINCT marque FROM manuels');
while ($data = mysql_fetch_array($query)) 
{ 
    $tabInfos = array($data['marque']);
}  

$lettreAffiche = ''; // la dernière lettre affichée

while( current($tabInfos) !== false ){
  $nom = current($tabInfos);
  // On affiche les catégories sautées
  while( $lettreAffiche != $nom[0] ){
    echo current($tabLettre) . '<br />'; // affichage de la lettre sautée
    $lettreAffiche = current($tabLettre); // on met à jour la dernière lettre affichée
    next($tabLettre);
  }
  echo $nom . '<br />';

  next($tabInfos);
}
// On fini d'afficher les lettres qui n'ont aucun nom
while( current($tabLettre) !== false ){
    echo current($tabLettre) . '<br />'; // affichage de la lettre sautée
    next($tabLettre);
}
 





Je vois les lettre mais j'arrive pas à afficher les marques. Je pense que cest a cause du current qui veut un tableau en entrée. Jai fais le while mais je pense pas que mon $tabInfos = array($data['marque']) marche ..



A voir également:

1 réponse

djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
4 févr. 2012 à 19:19
J'ai un peu de mal à saisir ce que tu veux faire au juste, surtout que je penses que tu te mélanges un peu les pinceaux quelque part et qu'il y'a moyen de faire plus simple.

Bref je penses que tu devrais essayer ceci :
Remplace :

while ($data = mysql_fetch_array($query)) 
{ 
    $tabInfos = array($data['marque']);
} 

par :

$tabInfos = array();
while ($data = mysql_fetch_array($query)) 
{ 
    $tabInfos[] = array($data['marque']);
}


Actuellement à chaque boucle ton $tabInfos est remplacé par la nouvelle valeur trouvée.
0