|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Ven Juil 27, 2007 14:53 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
Bonjour, je fais apel aux connaisseurs du php car j'ai un pti souci qui m'ennui.
En effet je suis en plein develloppement d'un gros site (elevage virtuel) mais j'ai un souci, c'est le classement.
Voila j'ai une table "users" dans laquelle sont stocké bien évidemment toutes les infos du client mais aussi sont nombre de points qu'il gagne en faisant diverse truc sur le site. Le champs "exp_eleveur" est en INT et donc peut aller de 0 à 9999...+ .
Concernant le classement je n'ai aucun probleme pour afficher les noms des 30 premiers... une simple récupération d'information et une répétition limitée a 30. parcontre je séche au niveau de la numérotation.
Quant le client entre dans son espace perso, il voit "classement général : xxx eme" , enfaite c'est ce "xxx" que je n'arrive pas à mettre en oeuvre . quelqu'un aurait t-il une idée ? merci à vous |
|
| |
|
 |
bigjet WRInaute occasionnel

Inscrit le: 21 Nov 2004 Messages: 211
|
Posté le : Ven Juil 27, 2007 15:07 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
À la fin de chaque journée, tu parcoures toute ta table en triant par le nombres de points.
Ensuite, tu mets à jour le champ position de chaque joueur, en créant préalablement une variable compteur qui sera incrémentée à chaque fois que tu lis une ligne. |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Ven Juil 27, 2007 15:14 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
On va donc devoir utilisé un WHILE non ? j'y comprend plus rien php me dépasse parfois lol mais souvent
Est ce que tu aurai un portion de code qui pourrait m'éclairer? merci |
|
| |
|
 |
bigjet WRInaute occasionnel

Inscrit le: 21 Nov 2004 Messages: 211
|
Posté le : Ven Juil 27, 2007 16:49 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
ok, donc pour commencer, rajoute un champ classement dans ta table users.
| Code: |
$rs = mysql_query("SELECT * FROM users ORDER BY nbpoints DESC);
$compteur = 1;
while($data=mysql_fetch_assoc($rs)
{
$pseudo = $data['pseudo']; //si tu as un champ id, prend lui
mysql_query("UPDATE users SET classement='$compteur' WHERE pseudo='$pseudo'")
$compteur ++;
} |
Ensuite pour récupérer le classement d'un joueur, tu auras seulement à faire
SELECT classement FROM users WHERE pseudo='ZelkiN' |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Mer Aoû 01, 2007 10:17 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
ok c'est super cool de ta part, oui c'est vrai j'avais pas penser a ce genre d'incrémentation ^^, malgré qu'a mon avis ce soit un peu lourd avec plus de 100000 membres ... je verrai lol, je vais tester ca mais d'apres ton code tout doit marché nikel crome, thanks a toi  |
|
| |
|
 |
rog WRInaute accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Mer Aoû 01, 2007 14:26 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
un count sur du numerique devrait etre instantané même sur 1000 000 de membres
rog |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Ven Aoû 03, 2007 13:58 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
re bonjour, voila j'ai testé mais pti souci
le code :
| Code: |
$rs = mysql_query("SELECT * FROM users ORDER BY exp_eleveur DESC");
$compteur = 1;
while($data=mysql_fetch_assoc($rs);)
{
$id = $data['id']; //si tu as un champ id, prend lui
mysql_query("UPDATE users SET position='$compteur' WHERE id='$id'")
$compteur ++;
}
|
apres avoir mis des parentheses oubliées j'ai encore une erreur, mais je ne sais pas trop comment la résoudre, ca vient de compteur = 1;
while($data=mysql_fetch_assoc($rs)
Parse error: parse error in c:\program files\easyphp1-8\www\...\classement.php on line 6
quelqu'un pourrait m'aidé ? ty |
|
| |
|
 |
rog WRInaute accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Ven Aoû 03, 2007 14:09 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
tu n'as pas fermé la ligne précédente (
rog |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Ven Aoû 03, 2007 14:22 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
lol, voila j'ai trouvé, enfaite il y en avais un de trop, jamais de point virgules dans un while lol...
| Code: |
{
$id = $data['id']; //si tu as un champ id, prend lui
mysql_query("UPDATE users SET position='$compteur' WHERE id='$id'");
$compteur ++;
} |
mais la encore un souci, ca ne me reconnais pas $id ...
NOTION : Undefined index: id |
|
| |
|
 |
Suede WRInaute accro

Inscrit le: 04 Oct 2002 Messages: 3653 Localisation: Suède
|
Posté le : Ven Aoû 03, 2007 14:28 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
| rog a écrit: |
un count sur du numerique devrait etre instantané même sur 1000 000 de membres
rog |
Si tu comptes le nombre de résultat que retourne une requete
select champs where nombre_de_point < nombre de point du joueur, tu as le nombre de personne classé avant lui.
Son classement est donc +1.
François |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Ven Aoû 03, 2007 14:41 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
j'y comprend rien, voila j'ai mis tout ce qu'il fallait, aucune erreur n'a lieu, ca a l'air de marché sauf que ... comme le dis "Suede" ca à l'air de m'updater +1...
enfaite j'ai 2 joueurs pour le moment (test), quand je lance le truc, ca me met que classement joueur 1 = 0 et que classement joueur 2 = 1, alors que joueur 1 est mieux classé que joueur 2... pti souci lol |
|
| |
|
 |
ZelkiN WRInaute occasionnel

Inscrit le: 27 Juil 2007 Messages: 204 Localisation: Aix-Les-Bains (73)
|
Posté le : Mer Aoû 08, 2007 16:32 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
| up |
|
| |
|
 |
Robinson WRInaute accro

Inscrit le: 26 Oct 2005 Messages: 1399
|
Posté le : Mer Aoû 08, 2007 22:23 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
Perso, je n'affiche jamais le classement pour chacun (bon c'est vrai que pour moi, c'est pas primordial).
Mais éxécuter 100 000 fois (ou plus) une requête update en un seul script, ça me fait un peu peur...
La montée en charge ne doit pas être minime.
(je pourrai essayer mais j'ai la flemme lol) |
|
| |
|
 |
FloBaoti WRInaute passionné

Inscrit le: 30 Avr 2006 Messages: 596 Localisation: Montpellier
|
Posté le : Mer Aoû 08, 2007 22:26 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
| En pleine nuit ce n'est pas bien grave. Tu fermes l'accès au site pendant 15 minutes et tu lances ton script. |
|
| |
|
 |
bigjet WRInaute occasionnel

Inscrit le: 21 Nov 2004 Messages: 211
|
Posté le : Mer Aoû 08, 2007 22:35 Sujet du message: PHP/SQL - Classement numéroté avec table users pour jeu |
|
|
| Robinson a écrit: |
Perso, je n'affiche jamais le classement pour chacun (bon c'est vrai que pour moi, c'est pas primordial).
Mais éxécuter 100 000 fois (ou plus) une requête update en un seul script, ça me fait un peu peur...
La montée en charge ne doit pas être minime.
(je pourrai essayer mais j'ai la flemme lol) |
Quand on a 100 000 membres, je pense qu'on a les infrastructures techniques pour faire face à ce genre de montée en charge  |
|
| |
|
 |
| |
|
|