JeuWeb - Crée ton jeu par navigateur
[réglé] requête Sql ou mise en Session ? - 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 : [réglé] requête Sql ou mise en Session ? (/showthread.php?tid=1579)

Pages : 1 2 3


[réglé] requête Sql ou mise en Session ? - Nessper - 12-08-2007

Sur chaque page j'ai besoin de pas mal d'informations (entre 20 et 30 variables je dirais, dont 2 ou 3 sont des array) et la plupart ne changeront pas entre les passages au différents pages.
Ma question est donc la suivante :
Vaut-il mieux que je fasse à chaque fois une grosse requête pour tout aller chercher ou est-ce que cela vaut-il le coup que je mette mes variables en SESSION ?

Merci de vos avis


RE: requête Sql ou mise en Session ? - uriak - 12-08-2007

la réponse m'intéresse également, au passage ^^

J'aurais tendance à penser que si effectivement la plupart des informations ne varieront pas beaucoup d'une page à l'autre, lancer les requêtes seulement quand c'est nécessaire pourrait convenir. Par contre ça risque de compliquer le code qui devra à chaque étape vérifier ce que la session connaît et lancer des requêtes complémentaires pour traiter les ajouts et modifications. Dernier problème, que se passe-t-il en cas d'informations modifiées par d'autres joueurs entre deux demandes de page ?

Exemple tout bête, je veux que les joueurs puisse lancer des propositions d'échange. A la connexion, le serveur collecte toutes les propositions me concernant puis je navigue. Si je me base sur la session, une mise à jour de ma situation ne sera pas effectuée si une de ces transactions s'achève. Je serai amené à croire que j'ai toujours l'objet de l'échange en ma possession, que je ne peux pas encore me déplacer, etc.


RE: requête Sql ou mise en Session ? - Ludvig - 12-08-2007

Si ça peut changer, même rarement, (PV,Bonus,équipement etc) il faut chercher dans le DB, y a pas de miracle Smile
Par contre, les infos qui ne changeront pas (Login, date de création, ...) ou qui changeront uniquement
après action du joueur même (Points d'action, visu personnalisable) peut être mis en session une fois chargés.

/Lud


RE: requête Sql ou mise en Session ? - Globe - 12-08-2007

Personnellement j'aime à stocker uniquement l'ID du joueur en variable de session, je sais pas pourquoi j'ai jamais pu m'y faire, et je fais une requete spécifique selon les besoins de la page. Mais tu stockes énormément de trucs dans ta tables membres ou c'est une impression ?


RE: requête Sql ou mise en Session ? - uriak - 12-08-2007

je pense que les points d'actions peuvent être raisonnablement stockés en session.
Quoique, si le serveur vérifie la validité de toute action, ça n'en vaut peut être pas la peine... hum d'ailleurs qu'est-ce qu'il vaut mieux contrôler en général, si on passe essentiellement par des formulaires ?
->seulement les champs remplis par l'utilisateur ?
->ou également la légalité d'une action ? (avait-il le droit de faire ça ? est-il au bon endroit, lui restait-il les pa ?)


RE: requête Sql ou mise en Session ? - Argorate - 12-08-2007

30 variable de saission? et bin dite donc...
moi je pense avoir une solution autre: tu recupere tes 30 variables dans un page a part(exemple.php) avec une seule requete.
Et tu fais include('exemple.php') a chaque fois que tu en a besoin (d'apres se que tu dis toute tes pages...).


RE: requête Sql ou mise en Session ? - uriak - 12-08-2007

Mais ça fait faire une requête à chaque fois, non ?
Je ne sais pas si le but de Nessper est d'éviter le code ou la requête elle-même.


RE: requête Sql ou mise en Session ? - Argorate - 12-08-2007

bien sur sa fait une reqete a chaque fois, mais bon les requete sa s'evite pas tjs...
ps: dans l'absolue on peut avoir utant qu'on veux de variable de saission.
mais si tu en a 30, chaque fois diferente poru chaque joueurs... ton server va craqué vite fait Big Grin


RE: requête Sql ou mise en Session ? - Loetheri - 12-08-2007

Je crois que tu l'auras compris, Nessper, 30 variables essentiels à chaque joueur, c'est un peu .. beaucoup voire trop. Je me poserais quelques questions à ta place.

Maintenant, c'est une question de sécurité. Ces variables sont-elles sensibles ? Influent-elles le jeu ? Que se passe-t-il si on les change ?

Pour ma part, je ne stocke que des informations en petit nombre. Pour l'instant, une seule : l'id. Si on la change, cela ne sert à rien car une vérification sur la session est faite et doit correspondre.


RE: requête Sql ou mise en Session ? - elazard - 12-08-2007

Plop, même avi que Loetheri, le minimum possible ^^ moi j'y met quand même les infos genre pseudo etc en + de l'id