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

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
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
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