Bonjour à vous tous!
Je suis webmaster d'un site de quiz et je suis en travail pour la v3.0 (www.quizcity.net), et me voila confronté a un blocage de connaissance côté MySQL. Je crois que ça peut se faire, mais Google ne me donne rien d'intéressant sur le sujet. Voici mon problème:
Jai une table quiz dans lesquels sont stockés mes quiz et l'affichage de la liste se fait avec la requete suivante:
Code :
- $req = mysql_query("SELECT * FROM sets WHERE catid = '".$_GET['catid']."' AND isopen='1' AND quizlang='".$is_lang."' ORDER BY name LIMIT ".$start.", ".$nbpp."" );
|
Et j'ai une table "statistics" où le résultat de chaque partie est enregistré. Je détermine le niveau de difficulté du quiz selon la moyenne et je vais l'afficher dans ma liste de quiz. Jusqu'ici tout va bien. Par contre, je veux offrir un tri selon la moyenne... C'est là que ça se corse...
Je me suis fait une fonction pour calculer la moyenne et déterminer le niveau de difficulté, et cette fonction est appelée dans mon while d'affichage:
Code :
- function niveau($id){
- $extractionStats = mysql_query("SELECT * FROM statistics WHERE setid='".$id."'" );
- if( mysql_affected_rows() >= 5 ){
- $total = 0;
- $totalpoints = 0;
- $nbsaved = 0;
- while($niveau = mysql_fetch_array($extractionStats)){
- $total += $niveau['score'];
- $totalpoints += $niveau['totalscore'];
- $nbsaved++;
- }
- $resultatPourcent=number_format($total/$totalpoints*100,0);
- if($resultatPourcent <= 40){
- echo '<font color="#C00000" size="2"><b>Très difficile</b></font>';
- }
- else if($resultatPourcent <= 60){
- echo '<font color="#FF0000" size="2"><b>Difficile</b></font>';
- }
- else if($resultatPourcent <= 80){
- echo '<font color="#FF8000" size="2"><b>Moyen</b></font>';
- }
- else if($resultatPourcent < 90){
- echo '<font color="#60E000" size="2"><b>Facile</b></font>';
- }
- else
- {
- echo '<font color="#40FF00" size="2"><b>Très facile</b></font>';
- }
- }
- else
- {
- echo '<span onmouseover="montre(\'Il faut au moins <b>5</b> résultats pour<br>déterminer le niveau de difficulté.\');" onmouseout="cache();"><font color="grey" size="2"><b>En calcul...</b></font></span>';
- }
- }
|
La moyenne est dans $resultatPourcent, et il faudrait que je puisse classer en ordre ASC de $resultatPourcent...
Est-ce possible en une seule requête MySQL? Si oui, comment?
Merci de votre précieuse aide, je ne sais plus trop où chercher...
---------------
www.failqc.com : FailBlog québécois