Une requete compliquée...
Posté : 20 sept. 2006, 12:38
Plop,
J'ai une requete :
Le probleme, c'est que quand le tri se fait par ordre alphabetique (dans le cas d'un classement par pseudo), le classement est sensible à la casse.
C'est à dire que j'aurais par exemple :
Comment faire pour avoir un classement correct ?
* Modifier ma requete avec UPPER pour mettre la 1ere lettre de chaque pseudo en majuscule ? (j'ai pas trop d'idée sur la facon de proceder) ?
* Modifier ma méthode de classement ?
---> Fonction :
Edit : J'ai essayé de mettre en majuscule la 1ere lettre du pseudo, mais ca marche pas ^^
J'espère que j'ai été assez clair
Merci d'avance
J'ai une requete :
$table = mysql_query('SELECT @rank := @rank + 1 AS rank, pseudo, score, level, timestamp FROM
arkanoid ORDER BY score DESC LIMIT '.$premier_score.', '.$_SESSION['NB_score_page']);
J'ai ensuite mis le resultat sous forme de tableau pour pouvoir classer les colonnes.Le probleme, c'est que quand le tri se fait par ordre alphabetique (dans le cas d'un classement par pseudo), le classement est sensible à la casse.
C'est à dire que j'aurais par exemple :
Code : Tout sélectionner
1 - Alpha
2 - Beta
3 - Omega
4 - alpha
5 - beta
6 - omega* Modifier ma requete avec UPPER pour mettre la 1ere lettre de chaque pseudo en majuscule ? (j'ai pas trop d'idée sur la facon de proceder) ?
* Modifier ma méthode de classement ?
---> Fonction :
function classement ($tableau, $col, $direction) {
foreach($tableau as $k=>$v){
$cle[$k] = $v[$col];
}
array_multisort($cle, $direction, $tableau);
return $tableau;
}
---> Appel de la fonction :
$scores = classement ($scores, $tri_champ, SORT_ASC);
* Ou modifier mon tableau $scores pour mettre la 1ere lettre de chaque pseudo en MAJ ?Edit : J'ai essayé de mettre en majuscule la 1ere lettre du pseudo, mais ca marche pas ^^
for ($i=0; $i<$total_score; $i++) { ucfirst(strtolower($scores[$i][1])); }
J'espère que j'ai été assez clair
Merci d'avance