par
visualight » 02 juin 2010, 20:52
Salut
Tu peux travailler de deux manières.
La manière la plus facile est d'utiliser
GROUP BY initiale dans ta requete existante. Mais c'est pas très propre : utilisation de 2 requêtes.
Une autre solution consiste à travailler avec un tableau (array) pour éviter de stocker un simple alphabet dans une table.
L'utilisation combinée de l'array et de la boucle foreach évitent une requête mysql.
J'en ai profité pour corriger ton code.
Fais gaffe lorsque tu utilises php, ça ne sert à rien de faire :
<a href="<?php echo $url; ?>"><?php echo $texte; ?></a>
car tu ouvre plusieurs fois l'interprétation <?php et echo ce qui au final est moins rapide et pratique que de faire :
echo '<a href="'.$url.'">'.$texte.'</a>';
mieux vaut englober (faire un echo de toute la ligne) que de répèter et ouvrir l'interprétation php et fonction echo plusieurs fois.
<?php
// $tableau[0] = A -> $tableau[25] = Z
$tableau = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
foreach ($tableau as $value) {
$req = $bdd->prepare('SELECT id, nomgroupe, nomalbum FROM musicreviews WHERE lettre = :lettre AND lang = :lang ORDER BY annee GROUP BY lettre');
$req->execute(array(':lettre' => $value, ':lang' => $lang));
while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
echo '<a style="margin-left:2%;" href="musicreviewspage.php?id='.$donnees['id'].'">'.$donnees['nomgroupe'].' - '.$donnees['nomalbum'].'</a><br/>';
}
}
?>
Bonne prog,
visualight
Salut
Tu peux travailler de deux manières.
La manière la plus facile est d'utiliser [i]GROUP BY initiale[/i] dans ta requete existante. Mais c'est pas très propre : utilisation de 2 requêtes.
Une autre solution consiste à travailler avec un tableau (array) pour éviter de stocker un simple alphabet dans une table.
L'utilisation combinée de l'array et de la boucle foreach évitent une requête mysql.
J'en ai profité pour corriger ton code.
Fais gaffe lorsque tu utilises php, ça ne sert à rien de faire :
[php]<a href="<?php echo $url; ?>"><?php echo $texte; ?></a>[/php]
car tu ouvre plusieurs fois l'interprétation <?php et echo ce qui au final est moins rapide et pratique que de faire :
[php]echo '<a href="'.$url.'">'.$texte.'</a>';[/php]
mieux vaut englober (faire un echo de toute la ligne) que de répèter et ouvrir l'interprétation php et fonction echo plusieurs fois.
[php]<?php
// $tableau[0] = A -> $tableau[25] = Z
$tableau = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
foreach ($tableau as $value) {
$req = $bdd->prepare('SELECT id, nomgroupe, nomalbum FROM musicreviews WHERE lettre = :lettre AND lang = :lang ORDER BY annee GROUP BY lettre');
$req->execute(array(':lettre' => $value, ':lang' => $lang));
while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
echo '<a style="margin-left:2%;" href="musicreviewspage.php?id='.$donnees['id'].'">'.$donnees['nomgroupe'].' - '.$donnees['nomalbum'].'</a><br/>';
}
}
?>[/php]
Bonne prog,
visualight