Classements des joueurs - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Classements des joueurs (/showthread.php?tid=5087) |
RE: classements des joueurs - zeppelin - 19-08-2010 php_addict, la je ne comprends pas... tu as la solution la plus optimisé toute faite qui est mise à disposition, mais tu t'obstinne à ne pas l'utiliser.... dois-je comprendre que tu n'as pas compris? Comme je te l'ai dis, je veux bien t'aider à le mettre en place, mais il faut y mettre du tiens également Le temps de calcul avec la solution que j'ai proposé doit être inférieur à 10MS, et la taille n'a que peu d'influence (tant que ça reste dans le raisonnable...), si en plus tu cache le résultat comme te le propose sephi... que du bonheur :-) Franchement pense z'y (comment ça s'écrit au juste? ^^), c'est un principe de mysql méconnu mais au combien puissant (requête imbriqué, sortir un classement uniquement sur les points sans colonne de classement)! Si tu veux je suis dispo par MP pour mettre ça en place sur ton jeu. Allez ++, bonne soirée tout le monde, la bière m'appelle :-p RE: classements des joueurs - Foxglove - 19-08-2010 (19-08-2010, 08:43 PM)php_addict a écrit : 2 ) je trie (en php, pas avec sql) l'array $joueur selon points attaque Ce n'est pas très efficace de retrier ton tableau à chaque fois que le classement change. En plus, ça ne tire pas vraiment profit de la manière dont PHP trie les données. C'est plus rapide de seulement mettre à jour la position du joueur concerné dans le tableau trié. (19-08-2010, 08:43 PM)php_addict a écrit : c'est l'écriture de la table classement qui prend du temps (accès disque dur...) Pourquoi sauvegarder les classements dans une base de données ? Tu pourrais juste conserver les classements en mémoire. Tu n'as pas besoin de notion de persistance puisque tu peux la recalculer à chaque redémarrage du jeu, non ? C'est peut-être pas l'optique PHP par contre, je ne sais pas trop. RE: classements des joueurs - php_addict - 19-08-2010 (19-08-2010, 09:15 PM)zeppelin a écrit : php_addict, la je ne comprends pas... tu as la solution la plus optimisé toute faite qui est mise à disposition, mais tu t'obstinne à ne pas l'utiliser.... dois-je comprendre que tu n'as pas compris? Comme je te l'ai dis, je veux bien t'aider à le mettre en place, mais il faut y mettre du tiens également je vais rejeter un coup d'oeil plus attentif à ton post, désolé... RE: classements des joueurs - Jabberwock - 19-08-2010 (19-08-2010, 01:42 PM)zeppelin a écrit : Donc pas besoin de between et je ne sais trop quoi, mais juste une seule petite requête imbriqué (celle de ma fonction)Vexé ! non je déc mais j'ai du quand même mal m'exprimer. (19-08-2010, 01:42 PM)zeppelin a écrit : $request = 'SELECT uid FROM `ranglist` WHERE '. $points . ' >= ( SELECT '. $points .' FROM `ranglist` WHERE uid ='. $uid .' ) order by uid desc'; je montre la requête que je décrivais qui remplacerais celle ci dessus. Code PHP :
Ma requête n'est-elle pas plus rapide ? RE: classements des joueurs - Thib4s - 19-08-2010 Le probleme n'est pas souvent la rapidité de la requete mais d'essayer de les limiter au maximum pour epargner de la charge au serveur ;P RE: classements des joueurs - php_addict - 20-08-2010 bonjour. merci à vous tous, mais je reviens sur un dernier point si vous le voulez bien: Code PHP :
cela fontionne à merveille, cependant il y a comme un hic quand le joueur n'a pas de points (ZERO) exemple: Code PHP :
c'est certainement du au fait que la fonction getRankingById() me renvois le nombre d'enregistrement > ou = à ZERO (c'est à dire tout les enregistrements) RE: classements des joueurs - Ter Rowan - 20-08-2010 effectivement ( ben joué le cas test :p) il vau mieux faire un count(*)+1 where score strictement supérieur à score du joueur au delà de ce point tu obtiens le résultat en combien de temps ? RE: classements des joueurs - php_addict - 20-08-2010 (20-08-2010, 01:46 PM)Ter Rowan a écrit : il vau mieux faire un ceci ne fonctionne pas non plus ;( Code PHP :
RE: classements des joueurs - Ter Rowan - 20-08-2010 ça fonctionne pas ça plante ou ça fonctionne pas ça donne un mauvais résultat (etlequel) ? RE: classements des joueurs - php_addict - 20-08-2010 (20-08-2010, 02:26 PM)Ter Rowan a écrit : ça fonctionne pas ça plante ou ça fonctionne pas ça donne un mauvais résultat (etlequel) ? j'ai mis tout les scores à zero pour pousser + avant l'etude de cas... et la fonction getRankingById() me renvois 1 |