Une fois par jour :)

Une fois par jour :) - PHP - Programmation

Marsh Posté le 14-02-2006 à 16:51:53    

Salut tout le monde !!
 
Voila je me pose des questions :  
 
En effet je voudrais faire un systeme qui chaque jour (apres minuit) UPDATE une table 1 fois et si apres le membre raffiche la page ou est contenu l'UPDATE beh ca lui affiche un autre message :)
 
Je me doute bien qu'il faudrait creer une table pour verifier si le membre est passé aujourd'hui ... non ?
 
Mais je ne vois pas comment procéder :)
 
Si quelqu'un pouvait m'aider ;)
 
Aller bonne apres-midi à tous !

Message cité 1 fois
Message édité par titanhermes le 14-02-2006 à 16:55:30
Reply

Marsh Posté le 14-02-2006 à 16:51:53   

Reply

Marsh Posté le 14-02-2006 à 17:09:31    

titanhermes a écrit :

Salut tout le monde !!
 
Voila je me pose des questions :  
 
En effet je voudrais faire un systeme qui chaque jour (apres minuit) UPDATE une table 1 fois et si apres le membre raffiche la page ou est contenu l'UPDATE beh ca lui affiche un autre message :)
 
Je me doute bien qu'il faudrait creer une table pour verifier si le membre est passé aujourd'hui ... non ?
 
Mais je ne vois pas comment procéder :)
 
Si quelqu'un pouvait m'aider ;)
 
Aller bonne apres-midi à tous !


Le system de cron ou tache planifiée qui va executer ta page php ou autre. Effectivement il faut stocké une information comme quoi la page à été visité soit dans une base, sur un fichier, ...

Reply

Marsh Posté le 14-02-2006 à 17:12:54    

Je ne suis pas sûr d'avoir tout compris, mais je pense qu'il faut que tu utilises le cron de Linux (ou le planificateur de Windows suivant l'OS). Tu lui fais exécuter un script php via php.exe.
ex : ça lance le script passé en paramètre du lundi au vendredi à 20h00
00 20 * * mon-fri php -q /var/www/html/MonScript.php

Reply

Marsh Posté le 14-02-2006 à 17:20:42    

Nan lol enfaite je me suis mal exprimé je voudrais que PHP et SQL lance une requete si un membre affiche la page qu'il stocke (Via BDD ) si le membre la deja affiche ou pas ca affiche un message diferent ;)
 
En gros je voudrais  
 
if (le membre a affiché la page jourdhui)
{
echo yeahhh;
}
else {
INSERT INTO ....
}

Reply

Marsh Posté le 14-02-2006 à 17:28:00    

bon ben une table avec pour chaque record, l'id du membre et l'id de la page vue. Si le couple id membre/id page est dans la table, alors le membre a vue la page, sinon il l'a pas vu et quand il va dessus, penser à mettre cette table à jour. Faudra penser à la réinitialiser aussi chaque jour...

Reply

Marsh Posté le 14-02-2006 à 17:29:04    

beh justement mon probleme c'est que je ne sais pas comment réinitialiser chaque jour :)

Reply

Marsh Posté le 14-02-2006 à 17:29:06    

Je te laisse un indice :o
http://www.cookiesinheaven.com/images/cookies/chocolate_chip_cookie.jpg

Reply

Marsh Posté le 14-02-2006 à 17:29:58    

lol non je voudrais faire ca avec MYSQL sinon on pourrait tricher :)

Reply

Marsh Posté le 14-02-2006 à 17:31:45    


t'as raison, comme ça on se connecte de 2 postes différents le traitement est fait 2 fois...[:moule_bite]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2006 à 17:32:23    

titanhermes a écrit :

beh justement mon probleme c'est que je ne sais pas comment réinitialiser chaque jour :)


 
Mais non, tu stockes la date de dernière vue, juste. Et l'utilisateur peut voir si c'est pas aujourd'hui.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2006 à 17:32:23   

Reply

Marsh Posté le 14-02-2006 à 17:34:32    

skeye a écrit :

t'as raison, comme ça on se connecte de 2 postes différents le traitement est fait 2 fois...[:moule_bite]


Ben si aujourd'hui est différent de la date presente dans la table ben c'est que c'est plus hier :D
tu effectue l'opération à la premiere personne qui se connect.

Message cité 1 fois
Message édité par Berceker United le 14-02-2006 à 17:35:00
Reply

Marsh Posté le 14-02-2006 à 17:35:29    

Mais on se moque de l'utilisateur si il voit ou pas :)
 
Ce que je vodurais faire c'est :
 
Le visiteur entre sur la page pour la 1ere fois aujourd'hui => Je lui donne 200 Pieces si c'est la 2eme fois ou +  je lui donne rien ...
 
Si le visiteur n'affiche pas la page alors je lui donne rien ...

Reply

Marsh Posté le 14-02-2006 à 17:35:54    

Berceker United a écrit :

Ben si aujourd'hui est différent de la date presente dans la table ben c'est que c'est plus hier :D
tu effectue l'opération à la premiere personne qui se connect.


 
Il dit qu'il voit pas le rapport avec un cookie; :heink:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2006 à 17:37:15    

titanhermes a écrit :

Mais on se moque de l'utilisateur si il voit ou pas :)
 
Ce que je vodurais faire c'est :
 
Le visiteur entre sur la page pour la 1ere fois aujourd'hui => Je lui donne 200 Pieces si c'est la 2eme fois ou +  je lui donne rien ...
 
Si le visiteur n'affiche pas la page alors je lui donne rien ...


 
Bah c'est bien ce que je dis. Tu stockes la dernière date à laquelle tu lui as filé ses pièces, c'est tout. Après c'est facile de vérifier s'il faut lui donner ou pas.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2006 à 17:40:54    

Justement mon probleme c'est que je voi pas comment tester :)

Reply

Marsh Posté le 14-02-2006 à 17:42:29    

[:pingouino]
Stocker un couple (code_utilisateur, date) dans une table ça te parait compliqué?
Lire dans cette table la date qui correspond à l'utilisateur courant, ça te parait infaisable?
Comparer cette date avec la date du jour c'est insurmontable?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-02-2006 à 18:03:40    

skeye a écrit :

Il dit qu'il voit pas le rapport avec un cookie; :heink:


non je parle plus du cookie car effectivement ça poserais probleme, je répondais sur la question qu'il posait concernant comment reinitialiser l'information pour repartire de zero à partir d'un base.
Il compare entre la date d'aujourd'hui et celle presente dans la base.

Reply

Marsh Posté le 14-02-2006 à 21:23:06    

Juste en passant je vois bien un truc du genre :
SELECT bla bla WHERE id_membre = -l'id- AND visite < NOW()
 
avec visite en date.

Reply

Marsh Posté le 14-02-2006 à 22:43:46    

Code :
  1. <?php
  2. //Si l'utilisateur est loggué
  3. if(session_is_registered('username'))
  4. {
  5. // Inclusion du Fichier Config.php
  6. include ('includes/config.php');
  7. // Connection &agrave; la Base de Donn&eacute;e
  8. mysql_connect("$localhost", "$user", "$pass" );
  9. mysql_select_db("$db" );
  10. //Requete permettant de voir si l'utilisateur est déjà venu
  11. $sql = "SELECT * FROM `jour` WHERE `pseudo`='".$_SESSION['username']."'";
  12. $req = mysql_query($sql);
  13. while ($data = mysql_fetch_array($req))
  14. {
  15. $timestamp = $data['timestamp']; // Date correspondant a la dernière visite du membre
  16. }
  17. $date_derniere_visite = date("d m Y", $timestamp);
  18. $date_moment_present = date("d m Y" );
  19. if (is_array($req)) // Si la requete possède un enregistrement
  20. {
  21. if ($date_derniere_visite == $date_moment_present)
  22. {
  23. echo '';
  24. }
  25. else {
  26. $requete = mysql_query("UPDATE `jour` SET `timestamp`='".time()."' WHERE `pseudo`='".$_SESSION['username']."'" ) or die(mysql_error());
  27. $sql = "SELECT * FROM `membre` WHERE `pseudo`='".$_SESSION['username']."'";
  28. $req = mysql_query($sql);
  29. while ($data = mysql_fetch_array($req))
  30. {
  31. $pieces_depart = $data['pieces'];
  32. }
  33. $pieces_200 = $pieces_depart + 200;
  34. $requete = mysql_query("UPDATE `membre` SET `pieces`='".$pieces_depart."'  WHERE pseudo='".$_SESSION['username']."'" ) or die(mysql_error());
  35. }
  36. }
  37. else // Si la requete ne possède d'enregistrement
  38. {
  39. $sql = "SELECT * FROM `membre` WHERE `pseudo`='".$_SESSION['username']."'";
  40. $req = mysql_query($sql);
  41. while ($data = mysql_fetch_array($req))
  42. {
  43. $pieces_depart = $data['pieces'];
  44. }
  45. $pieces_200 = $pieces_depart + 200;
  46. $requete = mysql_query("INSERT INTO `jour` VALUES ('".time()."', '".$_SESSION['username']."')" ) or die(mysql_error());
  47. $requete = mysql_query("UPDATE `membre` SET `pieces`='".$pieces_depart."'  WHERE pseudo='".$_SESSION['username']."'" ) or die(mysql_error());
  48. }
  49. }
  50. else  // Si l'utilisateur n'est pas loggué
  51. {
  52. }
  53. ?>


 
 
Voici ce que j'ai fait :)
 
Malheuresement le code ne marche pas si quelqu'un voie l'erreur merci  :ange:


Message édité par titanhermes le 14-02-2006 à 23:08:07
Reply

Marsh Posté le 14-02-2006 à 22:56:05    

berk berk :/

Reply

Marsh Posté le 14-02-2006 à 22:58:37    

Tu as trouvé l'erreur ?

Reply

Marsh Posté le 14-02-2006 à 23:01:04    

titanhermes a écrit :

Tu as trouvé l'erreur ?


Oui, c'est pas indenté donc pas facile à lire et puis s'il y avait un minimum de commentaire, parce que là ça donne pas envie de le lire :(

Reply

Marsh Posté le 14-02-2006 à 23:03:14    

je le refais et tu me donne l'erreur :)

Reply

Marsh Posté le 14-02-2006 à 23:08:32    

voiloup c'est fait :) J'ai edité l'ancien :)

Reply

Marsh Posté le 14-02-2006 à 23:21:25    

je crois que ca coince au niveau de mon    

Code :
  1. if (is_array($req)) // Si la requete possède un enregistrement


 
Si quelqu'un voit pourquoi ...

Message cité 1 fois
Message édité par titanhermes le 14-02-2006 à 23:21:54
Reply

Marsh Posté le 15-02-2006 à 03:51:59    

titanhermes a écrit :

je crois que ca coince au niveau de mon    

Code :
  1. if (is_array($req)) // Si la requete possède un enregistrement


 
Si quelqu'un voit pourquoi ...


peut pas marcher car le $req n'est pas de tableau c'est juste un jeux d'enregistrement, le type de la variable $req est "ressource" pour savoir s'il y a des enregistrements tu peux utiliser la fonction mysql_num_rows($req)=>entier.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed