PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-12-2009 15:49:19

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Classement de joueur via Array

Bonjour à tous,
En cette période ou la neige tombe ... oui oui regardez dehors, moi je me casse la tête sur une bricole, je m'explique :

Issu de ma bdd j'ai des point attribué par joueurs, je souhaiterais que e joueur, lorsqu'il se connecte voit sa position

id_joueur   nb_point
10             4
8               6
11             10

Je suis le joueur 8, est ma position est 2/3 (yeaaahhh !)
J'ai testé en créant un array, avec comme clé le nb_point et valeur l'id_joueur, j'ordonne les clés avec krsort(), jusque la tout va bien (ca marche) mais comment récupérer la position de ma ligne dans le tableau, sachant que les clés sont numeriques mais ne se suivent pas ? dans mon exemple précèdent, le joueur 8 a la position array 1 (soir le 2eme)

Suis-je clair ??
une autre methode ?
Merci smile

Hors ligne

#2 19-12-2009 11:17:47

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Classement de joueur via Array

On peut toujours faire une boucle mais c'est lourd...
Déjà ne stockes pas sous forme de clé = points mais plutôt clé = position-1 (en commençant de 0).

$classement = 0;
foreach($i=0; $i<count($array) && $array[$i] != $moi; $i++){
    $classement++;
}

Si tu as un millier de joueur cela risque d'être très lourd...

Malheureusement je n'ai pas d'autres idées en tête pour le moment... hmm

Dernière modification par xTG (19-12-2009 11:19:22)

Hors ligne

#3 19-12-2009 11:24:52

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Re : Classement de joueur via Array

ok xTG merci pour to aide mais comment je gere l'affichage de la position de mon joueur ?
je saisie pas trop là sad

Hors ligne

#4 19-12-2009 15:35:55

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Classement de joueur via Array

Saluton,
Et pourquoi ne pas demander à SQL ?

SELECT j.nbpoints,
       (SELECT COUNT(*)
        FROM joueurs AS j2
        WHERE j2.nbpoints > j.nbpoints)+1 AS rang,
       (SELECT COUNT(*)
        FROM joueurs) AS popu
FROM JOUEURS AS j
WHERE j.idjoueur=$idjoueur

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 19-12-2009 15:56:10

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Re : Classement de joueur via Array

ok certes mais comment je determine la position du joueur par rapport aux autres ?
j'vais penser le faire en sql avec un table pour etablir le classement, mais si il sont 100 a checker leurs position en meme temps, ca va etre le souk

Hors ligne

#6 19-12-2009 21:15:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Classement de joueur via Array

Tu veux une liste des joueurs en gros ?
Dans ce cas il te faut récupérer les enregistrements classés par nombre de point rien de bien compliqué.

Hors ligne

#7 21-12-2009 12:16:37

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Re : Classement de joueur via Array

Non pas juste une liste de joueur, mais en fonction d'une liste de joueur et de leurs nombres de point, etablir le classement de ceux ci, et de n'afficher sur le compte client, que sa position, et pas le classement global
- dans une table, j'ai les nombres de points avec id
- je fait un comptage des points
- et le joueur qui se connecte va sa position au classement, par ex. 2/125, sasns savoir qui est avant ou apres lui

C'est pour ca que je pensait a un array, qui traites les infos de la table points
Merci

Hors ligne

#8 21-12-2009 18:57:56

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Classement de joueur via Array

guigui a écrit :

le joueur qui se connecte va sa position au classement, par ex. 2/125, sasns savoir qui est avant ou apres lui

Et que crois-tu que fait la requête que je t'ai proposée ?
Faudrait peut être lire les réponses avant de s'emballer !


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 21-12-2009 19:01:05

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Re : Classement de joueur via Array

je vais donc la réessayée car je n'ai pas su l'adapter a mon code ... enfin bon
merci

Hors ligne

#10 23-12-2009 22:29:22

guigui
Membre
Inscription : 18-12-2009
Messages : 6

Re : Classement de joueur via Array

Ola
Pour simplifier, jai tout geré en bdd avec un cron qui genere le top 1x/jour

Hors ligne

Pied de page des forums