Aller au contenu

Bdd, increment toute les heure +1


thebarbarius

Sujets conseillés

Hello,

en utilisant une "tache planifiée" par exemple (cron, webcron, etc).

Il me semble que c'est prévu en interne dans MySQL, mais pas dans les versions actuelles.

Lien vers le commentaire
Partager sur d’autres sites

Sans vouloir être méchant, ça me semble pourtant niveau débutant.

Donc soit tu ne connais vraiment pas bien PHP, soit on a pas compris le problème... donc va falloir nous en dire plus. Sur quoi bloques tu exactement ?

Modifié par Kioob
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Comme le dis Kioob, tu peux utiliser une tache automatique (cron)(qui se lance toutes les heures) qui lance un script php qui lui incrémente ta base de données.

@+

Lien vers le commentaire
Partager sur d’autres sites

Je vais essayer par cron, .

Le script c'est:

J'ai une bdd avec une table.

Dedans je met 1.

J'aimerai que toute les heures elle s'increment de 1.

Donc imaginons 3h se sont ecoulé, et bien ma table contiendra le chiffre 4, 1+3h=4.

Voila, jespere que cela est comprehensible.

Je suis desolé, je n'ai jamais manipuler les heures, c'est pour cela que je bloque.

(a part aficher la date).

Lien vers le commentaire
Partager sur d’autres sites

Dans ta crontab tu peux ajouter la ligne suivante par exemple:

0 *	*  *  *	root	/usr/bin/php /chemin/de/ton/script/php/tonscript.php

et ton script php pourrait être:

#!/usr/bin/php
<?php
$connexion=mysql_connect($host,$user,$password) or die("Connexion à la base de données impossible");
$choix_base=mysql_select_db($db,$connexion) or die("Erreur Base de données");
if ($choix_base)
{
$sql="UPDATE table SET ton_champ=(ton_champ+1) where ta_condition";
$req=mysql_query($sql) or die ("Erreur mise à jour de la base de données");
$fermee=mysql_close() or die("Impossible de fermer la base de données");
}
?>

Voila j'espère que ca peut t'aider.

++

Lien vers le commentaire
Partager sur d’autres sites

Je dirais que c'est prendre un marteau piqueur pour casser une noix.

Si lors de la première interrogation de ta base du stockes la date sous forme de timestamp (avec time()), pas besoin de rajouter une heure 24 fois par jour.

Tu peux savoir le nombre de jours et heures écoulés à tout moment en retirant cette valeur du résultat que donne time() au moment où tu exécutes ton script.

Cela te donne le temps écoulé en secondes. Si tu veux des heures, tu divises par 3600, tout simplement.

Lien vers le commentaire
Partager sur d’autres sites

Même sans passer par du timestamp cela peu être fait très facilement mais avec le format datetime de mysql et toute les fonction sur les dates qui peu être utilisé comme cela tout est fait dans les requêtes sans avoir a faire le moindre traitement avec php.

http://dev.mysql.com/doc/refman/5.0/fr/dat...-functions.html

Modifié par crocxx
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...