Question sur les requettes

Fermé
*takka* - 27 déc. 2007 à 00:27
 le père - 27 déc. 2007 à 18:15
Bonjour,

je créé un jeu de gestion en php, et j'utilise les bases de données avec Mysql.
Lorsque le joueur ouvre sa session, sur la page de son personnage il y aura son pseudo de joueur, son argent, ses compétences, son poids...

Pour cela, je suis conscient qu'il faut faire des tas de requettes, mais pourtant, je me pose une question.
Lorsqu'on se connecte sur une base de donnée en tant que joueur avec un certain pseudo, n'y a t'il pas une solution pour qu'on puisse ecrire des valeurs en $pseudo, $argent, $poids sans à chaques fois faire des requettes pour tous les mots ?

9 réponses

Bonjour

Je ne comprends pas ta question. Quand on se connecte à une base de données, c'est en principe pour y faire des requêtes et rien d'autre.
La seule économie de requête que tu peux faire (c'est peut-être de ça que tu voulais parler) c'est d'utiliser les sessions qui te permettent de conserver des variables d'une page à l'autre et donc de ne pas ré-interroger ta base de données pour ce qui ne change pas à chaque appel de page.
0
oui c'est à ça que je pense !

J'arrive à creer les sessions, mais que faut il faire dans la premiere page pour que nous ayons les variables dans toutes les autres pages sans refaire de requetes ?
0
pour créer les variables de session en les initialisant, dans la première page :,
$_SESSION['pseudo']=$pseudo;
$_SESSION['argent']=$argent;
$_SESSION['poids']=$poids;

pour les récupérer dans les pages suivantes :

$pseudo=$_SESSION['pseudo'];
$argent=$_SESSION['argent'];
$poids=$_SESSION['poids'];

Une question. Tu dis que tu arrives à créer les sessions, mais tu en fais quoi, si tu ne fais pas ça ?
0
c'est pour qu'un joueur puisse se connecter à sa session, j'ai juste fait l'espace membre pour le moment.
Ce que je me demande, c'est que lors de l'authentification, le joueur ne rentre que son pseudo et son mot de passe, ce qui veut dire que parmis

$_SESSION['pseudo']=$pseudo;
$_SESSION['argent']=$argent;
$_SESSION['poids']=$poids;

il n'y a que le pseudo qui est trouvé non ?
En sachant que chacun a des variables donc differentes, comment faire pour afficher l'argent du joueur connecté ?
car on ne peut pas mettre $_SESSION['500']=$argent;

:/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
27 déc. 2007 à 04:52
Salut ,

je vais peut etre dire n'importe quoi mais juste apres l'authentification reussi tu pourrais afficher une page chargement qui initialise toutes les requetes par rapport au pseudo comme sa tu auras


/* REQUETES SQL */

$_SESSION['argent'] = $requete['argent'];
$_SESSION['poids'] = $requete['poids'];

et apres tu fais une redirection vers la page normal.... et recuperer les infos par

$argent=$_SESSION['argent'];
$poids=$_SESSION['poids'];
0
Bonjour

/* REQUETES SQL */ 
$_SESSION['argent'] = $requete['argent']; 
$_SESSION['poids'] =$requete['poids'];


Euh... Elles sont où les requêtes SQL, là ?
0
Bonjour *takka*

Bien sûr que lors de la connexion, tu n'as au départ que le login et le mot de passe. Il te faut une première requête pour vérifier ce login et ce mot de passe et une deuxième pour récupérer les autres infos de poids, argent, etc... Suivant la façon dont ta base est organisée, tu peux peut-être tout avoir en une seule requête.
Ta question portait sur le besoin de transmettre les variables de page en page sans avoir à refaire les requêtes à chaque fois. Les sessions te le permettent comme indiqué dans le message n°3. Elles ne te dispensent pas de faire une requête la première fois, il faut bien que tes variables sortent de quelque part avant de pouvoir être transmises...
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
27 déc. 2007 à 16:43
@le père

Quand j'ai dis :

/* REQUETES SQL */

$_SESSION['argent'] = $requete['argent'];
$_SESSION['poids'] =$requete['poids'];

/* REQUETE SQL */ signifie les requetes a placé :

$req = mysql_query("SELECT argent,poids FROM table WHERE name='$name' ");

while ($requete = mysql_fetch_array($req))
{
$_SESSION['argent'] = $requete['argent'];
$_SESSION['poids'] =$requete['poids'];
}

c'est sa que je voulais dire .

0
Je m'en doutais un peu...
Sauf que le while me semble inutile. Il ne devrait pas y avoir plusieurs fois le même $name, et si c'est le cas, pourquoi faire un while pour aller chercher le dernier au lieu de prendre le premier ?
D'autre part, le résultat d'un mysql_fetch_array étant un résultat de requête mais pas uen requête, l'appeler $requete risque de tromper les débutants qui nous lisent et qui vont se mettre à tout confondre. Il vaut mieux l'appeler $resultat...
0
petite question : pourquoi ne pas envoyer un cookie qui contient les infos?
0
Bonjour ego

On peut utiliser les cookies, ou loger les valeurs dans les URLs des liens qui vont appeler les autres pages...
Mais les sessions me semblent à la fois plus simples à utiliser, moins limitées s'il y a beaucoup de variables, et aussi plus fiables. Trop facile avec quelques connaissances d'envoyer des cookies ou des URL bidonnés.
0