[Optimisation] Système de 'propositions' - 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 : [Optimisation] Système de 'propositions' (/showthread.php?tid=1435) |
[Optimisation] Système de 'propositions' - Amrac - 06-07-2007 Bonjour, J'ai, sur mon site, un système de proposition qui permet aux joueurs d'émettre des suggestions et de voter pour ou contre. Mes tables se présente de la sorte: (Je vous est mis juste le nécessaire) Table Joueur: IDJoueur Table vote IDJoueur IDProposition Table Proposition IDProposition Je souhaite afficher toutes les propositions, et pour chaque proposition je dois savoir si le joueur qui affiche la page à déjà voté ou non. Actuellement,j'ai une requete qui prend toutes les propositions (SELECT * from proposition), puis pour chaque requete je vérifie si le joueur a déjà voté ou non (select count(*) AS vote from vote WHERE IDJoueur='$IDJoueur' AND IDProposition='$IDProposition') Cependant, c'est très lourd. Si je veux afficher 20 propositions, ca me fait 21 requêtes. Je n'est pas encore trouver de solution plus optimales, vous auriez quelque chose a me proposer? RE: [Optimisation] Système de 'propositions' - Haiken - 06-07-2007 select nom,IDJoueur from Proposition left join vote on Proposition.IDProposition=vote.IdProposition and vote.IDJoueur=$IDJoueur Si le joueur a voté, le champ IDJoueur vaudra $IDjoueur, sinon il vaudra NULL (à tester avec is_null() par exemple) RE: [Optimisation] Système de 'propositions' - Amrac - 07-07-2007 Parfait, en effet ça vaut le coup de jeter un oeil sur les jointures Merci a vous deux :-) RE: [Optimisation] Système de 'propositions' - NicoMSEvent - 08-07-2007 Il me semble que ceci devrait marcher (vérifie si il ne faut pas des "group by"). Le premier compteur compte le nombre de vote par proposition, le second t'affiche 1 si le joueur $joueur à voté, sinon, il retourne 0. Tiens nous au courant pour voir si ça marche selon tes attentes Code : SELECT p.IDproposition, RE: [Optimisation] Système de 'propositions' - Amrac - 11-07-2007 Pour avoir le nombre de vote par proposition, j'ai opté pour une technique différente. Pour chaque proposition, j'ai un champ 'nbVote' que j'incrémente a chaque vote. Ca simplifie un peu. La solution d'Haiken fonctionne plutot bien |