JeuWeb - Crée ton jeu par navigateur
[REGLE] Utilisation de TIMESTAMPDIFF - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [REGLE] Utilisation de TIMESTAMPDIFF (/showthread.php?tid=326)



[REGLE] Utilisation de TIMESTAMPDIFF - fiatt - 14-10-2006

J'essaye de calculer le nombre de secondes entre deux dates.
A cette fin j'utilise la nouvelle fonction TIMESTAMPDIFF:

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
Retourne la différence entière entre les expressions datetime_expr1 et datetime_expr2 , de format DATE et DATETIME . L'unité du résultat est donné par l'argument interval . Les valeurs légales de interval sont les mêmes que pour la fonction TIMESTAMPADD() .


mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1


Voici mon code:

Code PHP :
<?php 
$query
= mysql_query ("SELECT date_dernier_calcul FROM stock WHERE id_machines='1'") or die(mysql_error());
while (
$dernier_calcul = mysql_fetch_row($query))
{
$time = mysql_query("UPDATE stock SET nombre_secondes = TIMESTAMPDIFF(SEC,'" . DATE(Y-M-D H:i:s) . "','" . $dernier_calcul[0] ."')") or die(mysql_error());
}

Première question: est-il possible de retirer la boucle? cad je mets le pointeur sur un champs précis (une seule donnée) mai je ne sais pas comment faire pour utiliser cette donnée sans mysql_fetch_array.

Deuxième question: j'ai la traditionnelle Parse error: parse error, unexpected T_STRING dans la ligne qui commene par $time mais je ne trouve pas l'erreur...

Merci de votre aide.


RE: Utilisation de TIMESTAMPDIFF - Loetheri - 14-10-2006

Utilise la fonction NOW de MySQL


RE: Utilisation de TIMESTAMPDIFF - fiatt - 15-10-2006

Merci de ton aide.

J'ai résolu mon soucis:

Code PHP :
<?php 
//CALCUL DU NOMBRE DE SECONDE DEPUIS LE DERNIER CALCUL ET MISE A JOUR DE LA DATE DU DERNIER CALCUL
$sql = "UPDATE stock ".
"SET nombre_secondes = TIMESTAMPDIFF( SECOND, TIMESTAMP(date_dernier_calcul), CURRENT_TIMESTAMP()) , ".
"date_dernier_calcul = NOW()".
"WHERE id_machines = '1'";

$result = mysql_query($sql);



RE: [REGLE] Utilisation de TIMESTAMPDIFF - Loetheri - 15-10-2006

De rien Smile