Sql et classement par points...

rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -  
arthezius Messages postés 3756 Statut Membre -
Bonjour, j'ai une table contenant des joueurs et leur points

je vais bientot etre amené a établir un classement des 10 premiers donc :

SELECT * FROM matable ORDER BY points DESC LIMIT 0,10

avec un $position++ a chaques retour j'affiche simplement la position de chacuns
1er
2eme
3eme
etc...

par contre si je veu connaitre le classement d'un joueur en particulier ? (dire que nicolas est 32eme)

je suis pas obligé de faire tourner mon classement jusqua ce quil trouve nicolas ? si ?

j'espere quil y a une autre methode sinon car celle si doit etre gourmande en ressources

donc merci de m'aider sur la marche a suivre svp
merci

2 réponses

  1. arthezius Messages postés 3756 Statut Membre 475
     
    Je vois pas beaucoup d'autre manière de le faire.
    Dans cet exemple, le membre est identifié par sont id passé dans l'url.
    $count='0';
    $sql='SELECT * FROM matable ORDER BY points DESC';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while($data = mysql_fetch_array($req))
    	{
    	$count++
    	if($data['id']==$_GET['membre'])
    		{
    		break;
    		}
    	}
    echo 'Vous êtes '.$count.'ème au classement.';
    0
  2. rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
     
    ok c'est ce que je pensait faire mais je me disait que c'etait une solution a la con et qu'il devait forcement y avoir une soltion plus conventionelle...

    bon ok alors jvai voir ca comme ca :)

    merci
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      Peut-être que d'autre auront d'avantage d'idée.
      En tout cas, moi je vois pas...
      0