Aller au contenu

SQL, PHP et le temps


Meta-Dark

Sujets conseillés

Bonjour,

Me voila pour mon second message sur le forum, non plus pour me présenter mais pour demander de l'aide sur une fonction qui pourtant présente de grands intérêts.

Situation : Un visiteur veut jouer à mon jeu de Dé. Il dispose pour cela de 3 parties par jour, rechargées a 0h00 tous les jours.

Problème : Comment dire a ma base de données "à minuit, tu remet tous les compteurs de partie a 3" ?

Je planche dessus depuis quelques dizaines de minutes. Mais si jamais je trouve la solution avant vous, je vous en ferait part. Merci de votre aide !

Meta-Dark

Modifié par Meta-Dark
Lien vers le commentaire
Partager sur d’autres sites

Plutôt que de faire ça, tu peux tout simplement compter le nombre de parties jouées ce jour par un de tes membres.

Il suffit qu'à chaque partie, tu enregistres la date et l'heure dans un champ datetime en SQL, et tu peux faire une requête de ce genre :

SELECT COUNT(*) FROM parties WHERE DATE(champ_date) = CURDATE() AND id_utilisateur = 'id_utilisateur'

Tant que ce nombre est inférieur à 3, tu permets à tes utilisateurs de jouer.

Lien vers le commentaire
Partager sur d’autres sites

La structure de ma BDD ne me permet pas de créer une table rien que pour les parties. Je vais souvent trifouiller dedans (oui je sais, normalement on devrait pas avoir besoin d'entrer dans sa BDD comme ça !).

J'ai trouvé une alternative, qui remet les parties 24h après la dernière connexion du joueur SI celle ci lui a permis de récupérer des parties.

if(time() - $_SESSION['tsderniereco'] > 86400)
{
$_SESSION['partiesPoM'] = 10;
$temps = time();
mysql_query("UPDATE personnage SET `tsderniereco` = '$temps', `partiesPoM` = '$partiesPoM' WHERE `nom` = '$nom'") or die(mysql_error());
}

Le second problème qui s'est posé m'a paru plus facile a résoudre. Le jeu étant en javascript, il proposait au joueur de refaire une partie. J'ai transformé une variable PHP en javascript pour décrémenter la variable dans mon code javascript. Ensuite, a la fin de la partie on recharge une page en transmettant les variables comme ceci :

window.location.replace('?page=PlusOuMoins&points=' + points_gagnes +'&parties=' + cpt + '&score=' + best_score + '&rest=' + parties + '&difficulte=' + difficulte);

la page affichée donne le résultat de la partie, retire un certain nombre de parties selon la difficulté choisie, crédite de l'or en fonction du nombre de parties jouées et du meilleur score

Par contre, depuis mon domaine http://metadark.fr/ l'URL ne se colle pas au bout (heureusement), mais si on prend le domaine d'origine (http://pascal.miranda.free.fr/) et bien la méthode GET fait que l'on peut modifier les variables pour s'ajouter autant d'or que l'on veut. Y'a t-il une solution pour passer les variables par la méthode POST ? J'ai pensé a un formulaire caché mais je ne vois pas comment faire. Je vais chercher, mais si vous avez une solution faites moi signe :rolleyes:

Je te remercie quand même pour ton aide captain ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...