Comparer 2 dates

Eléphant du PHP | 76 Messages

01 mars 2006, 19:59

Bonjour
voila jai mis en place un jeu a gratter enfin il nest pas fini mais je bloque juste la , en faite le visiteur a 3 partie gratuite par jour si il revient le lendemain je voudrait comparer les 2 dates et si elle ne sont pas pareil on reingremente le compteur de 3 vous me comprennez lol
voici le bout de code que j'ai fait mais je bloque car il me met bien la date du jour dans ma base mais il m'ingremente aussi les 3 partie mais si le visiteur ferme ca sessions et la reouvre ca redonne encore 3 parties et la je suis planter merci d'avance de votre aide voici le bout de code
<?
 session_start();
include('conf.php');
$date=date("Y-m-d");


if ($_SESSION['date']  == $date)
{
header("location: membres.php");
exit;
}

 else 


{
mysql_query("UPDATE membres_tbl SET compteur = compteur+3,date='".$date."'   WHERE login = '".$_SESSION['login']."'"); 

header("Location: membres.php");
exit;
}


?>

Mammouth du PHP | 768 Messages

01 mars 2006, 20:28

As tu la possibilité de faire un crontab ? (tache planifiée sur ton hébergement)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 76 Messages

01 mars 2006, 20:32

ben non , toi tu parle de passez par un site cron cest ca mais cela ne changera pas mon pb si ?
car je debute en php et les codes et moi enfin a va jeme debrouillemais cest pas encore au point dans ma ptite tete lol , je prefere que tout vienn de mon site et que cela ne viennent pas crontab ect ect

Mammouth du PHP | 768 Messages

01 mars 2006, 21:23

je faisais allusion au crontab (par forcément depuis un site externe) car avec cette tache automatisée, ca t'aurai permis de remettre à zéro les compteurs chaque jour à minuit par exemple.
Je n'ai jamais réfléchis au genre de probleme que tu rencontres... mais ... une idée ... pourquoi pas ....
j'aurai dans ton cas créé un champ dernier_passage de type DATE et un champ compteur de type SMALLINT

avant d'effectuer le "grattage" tu fais une vérification

si le compteur est à 3 et si la date du dernier_passage est différente d'aujourd'hui, :arrow: tu fais un UPDATE avec la date du jour et le compteur à 1 ( remise à 0 + 1 grattage)

sinon si la date du dernier_passage est celle d'aujourd'hui et que le compteur est inférieur à 3, :arrow: tu incrémentes le compteur avec un UPDATE

sinon si la date du dernier_passage est celle d'aujourd'hui et que le compteur est à 3, :arrow: tu ne lances pas le grattage.
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 76 Messages

01 mars 2006, 21:47

en faite cest ce que je eux faire mais je narive pas a le faire voila mon pb jarrive bien a agrementer mon compteur de 3 et de changer de page quand il arrive a zero mais je narrive pas a metttre la date comme tu le dit tu comprend mon gros pb jai bo esayer de faire plusieur code mais rien a faire soit il mingremente mon compteur +3 ou bien il me fait plus rien et ne met pas a jour la date je suis perdu completement , jai beau essayer avec if et else en lui disant que si la date est inferieur a la date dhaujourdhui alors mettre la date a jour et ingrementer le compteur de 3 tu vois ce que je veux dire ?

Mammouth du PHP | 768 Messages

01 mars 2006, 21:55

oui je comprend tt à fait :wink:

je te laisse quelques liens utiles
Les chaines de caractères MySQL: http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
Les fonctions de date et heure MySQL: http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
Interroger une table MySQL: http://phpdebutant.org/article66.php

Si tu as un problème pour la requête (erreur ou question), tu peux poster la requete et une explication dans la rubrique SQL & Bases de données.
Pour la partie PHP, c'est dans la rubrique PHP (débutant ou PHP 4/5 selon ton niveau).

Bon courage :)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 76 Messages

02 mars 2006, 07:25

merci de ton aide , mais mon ocde dans mon premier post nest pas mauvais pourtant si il y as des erreurs de dans coment je peut le savoir ?

Eléphant du PHP | 76 Messages

02 mars 2006, 07:26

oups je recommence mal ecrit on comprend rien , je disait donc que mes ligne php dans mon premier post sont elle bonne pour ce genre de truc , es quil yas des erreurs dedans ?

ViPHP
ViPHP | 2144 Messages

02 mars 2006, 09:14

Salut,

On ne peut malheureusement pas te dire comme ça si ton code est bon, même si tu nous as expliqué brievement ce que tu cherchais à faire.
La manière de faire suivante, expliquée par Mario parait tout à fait permettre ce que tu recherches.
Avant d'effectuer le "grattage" tu fais une vérification

si le compteur est à 3 et si la date du dernier_passage est différente d'aujourd'hui, Arrow tu fais un UPDATE avec la date du jour et le compteur à 1 ( remise à 0 + 1 grattage)

sinon si la date du dernier_passage est celle d'aujourd'hui et que le compteur est inférieur à 3, Arrow tu incrémentes le compteur avec un UPDATE

sinon si la date du dernier_passage est celle d'aujourd'hui et que le compteur est à 3, Arrow tu ne lances pas le grattage.
Il est donc tout à fait inutile de passer par un crontab.
En Outre, Mario t'a donné pas mal de lien vers des tutoriaux et de la doc, qui te permettront de comprendre comment marche ce dont tu as besoin.

Mammouth du PHP | 19672 Messages

02 mars 2006, 09:29

Modération : cemice, il est interdit de poster plusieurs fois le même message dans différents forums ici : la copie postée dans le forum PHP5 est partie à la poubelle, j'espère ne pas devoir intervenir à nouveau
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

02 mars 2006, 13:26

desolez je pensait que je pouvais demander dans php5 du faite que je ne parlait plus de mysql desolez je ne recommencerai pas lol