thebarbarius
mardi 26 août 2008 à 17:54
Bonjour,
Je souhaiterai comment faire afin que j'ai une table mysql, sql, qui s'increment de + 1 toutes les heures.
Kioob
mardi 26 août 2008 à 18:34
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.
Portekoi
mardi 26 août 2008 à 18:48
Bonjour,
Tu ne peux pas calculer l'écart entre deux "heures", cela serait plus simple

Portekoi
Portekoi
mardi 26 août 2008 à 20:27
thebarbarius
mardi 26 août 2008 à 21:16
Je connais très bien le php.
Mais pour sa je bloque.
C'est pour cela que je demande de l'aide
Kioob
mardi 26 août 2008 à 22:41
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 ?
olivesjs
mercredi 27 août 2008 à 07:41
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.
@+
KaRaK
mercredi 27 août 2008 à 09:01
Bonjour,
Si la tache n'est pas trop critique et que tu peux te permettre de faire confiance à un service externe, il te suffira de saisir l'url de ton script d'incrémentation dans un service comme celui-ci :
http://www.webcron.org/Et il n'y a rien d'autre à faire
thebarbarius
mercredi 27 août 2008 à 17:28
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).
olivesjs
mercredi 27 août 2008 à 17:50
Dans ta crontab tu peux ajouter la ligne suivante par exemple:
CODE
0 * * * * root /usr/bin/php /chemin/de/ton/script/php/tonscript.php
et ton script php pourrait être:
CODE
#!/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.
++
Dan
mercredi 27 août 2008 à 17:59
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.
crocxx
vendredi 29 août 2008 à 13:30
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
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez
cliquer ici.