[Résolu]Vote,remise à zero chaque mois + vidage table votes

Eléphant du PHP | 190 Messages

24 avr. 2012, 17:32

Bonjour,

je réalise un système de votes simple pour des blogs Tumblr. Un click sur un lien + vérification de l'adresse ip en bdd pour éviter les votes multiples par heures.

table tumblr: id,name,votes
table votes: id,tumblrid,time,ip

Tout les premiers jours du mois je désire remettre a zéro mon champ votes de ma table tumblr pour tout les blogs et vider ma table votes pour éviter d'obtenir, à la longue, une base trop chargée.

J'ai pensé à une solution:

Le premier internaute qui se connecte le 1er de chaque mois fais tout le travail. Mais j'ai peur que si un jour ma table 'tumblr' devient assez conséquente, cela prennent du temps et que si l'utilisateur quitte son navigateur en plein travail, ça fasse bugguer mon script. En supposant que ma table atteigne 1000 entrées... Un UPDATE sur 1000 entrées ça prend du temps ?? et un delete sur plus de 1000 entrées ?

Y'a la tâche cron aussi mais je n'y connais absolument rien...

Pouvez vous m'aiguiller ?

Merci.
Modifié en dernier par Zahnzao le 24 avr. 2012, 21:59, modifié 1 fois.

Eléphant du PHP | 127 Messages

24 avr. 2012, 17:45

Bonjour,

sans hésiter le cronjob qui appelle soit
  • un script ksh qui lui-même exécute des requêtes SQL (via 'mysql -e' par exemple) ou qui appele des procédures stockées
  • un script PHP qui fera le même travail
Utilisation du cronjob :

Code : Tout sélectionner

$ crontab -e
tu arrives alors sous l'éditeur de texte vi.
Tu ajoutes une ligne avec ton horaire d'exécution, ici tous les 1er du mois à 1h du matin :

Code : Tout sélectionner

1 0 1 * * /usr/ton_fichier.ksh > /var/log/cronjob_ton_fichier.log
Pour enregistrer:

Code : Tout sélectionner

{Echap}:wq{Entrée}
Et le tour est joué.

Eléphant du PHP | 190 Messages

24 avr. 2012, 18:33

Salut, et merci pour ta reponse. Je viens de voir avec mon hébergeur.

Dans mon cPanel j'ai bien une interface qui me permet d'ajouter des taches cron avec plusieurs champs (minute,heure,jour,mois), c'est donc, si j'ai bien compris l'horraire d'execution. J'ai fais (0 0 1 * *)

Y'a un champs commande, je suppose que je dois taper une commande dans le genre de celle que tu m'as donnée ? Mais je suppose que je ne dois pas taper l'horraire d'exection puisque je l'ai configuré plus haut.

Dans le cas d'un fichier php qui serai sur mon serveur, ou dois je le placer ? et quelle serai la commande à inscrire ?

Merci.

Edit: résolu ;) après recherches j'ai réussi a configurer ma cron. La commande était

Code : Tout sélectionner

/usr/bin/php /home/USERNAME/public_html/exemple.php
tout dépend de l'arboressence du serveur en fait.

Code : Tout sélectionner

[chemin vers php] [chemin vers le fichier]
Merci pour ton aide ;)