Date addition

:-0)
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 19:47

non, tu n'es pas obligé de modifier ton champ

mais dans ta requête tu peux utiliser cette fonction UNIX_TIMESTAMP()
qui va transformer ta date en timestamp, faire ta soustraction et obtenir le résultat
Voici donc ma requette
$req="SELECT UNIX_TIMESTAMP(datex) from contrat where id_co=1";
mysql_query($req) or die (mysql_error());

echo $req['datex'];
Il me marque "S"

merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 juil. 2005, 19:58

je te conseille de créer ta requête d'abord dans phpMyAdmin ou autre, sans t'embarrasser du PHP

car là, c'est une erreur de PHP que tu fais, ce qui t'empêche de tester ta requête
$req="SELECT UNIX_TIMESTAMP(datex) from contrat where id_co=1";
mysql_query($req) or die (mysql_error());

echo $req['datex'];
tu affiches
$req['datex']
or où sélectionnes-tu "datex" ?
réponse : nulle part, puisque tu sélectionnes UNIX_TIMESTAMP(datex)

donc, réalise cette requête d'abord dans une interface de ta base de données, ce sera plus confortable

sinon pour info : quand tu sélectionnes des données en utilisant une (ou plusieurs !) fonctions (comme celle-ci, ou COUNT(), ou SUM() ...etc) et que tu veux utiliser un tableau associatif pour les résultats
tu peux renommer le champ de sortie, avec AS
comme ceci :

Code : Tout sélectionner

SELECT SUM(prix) AS prix_total
tu pourras ensuite récupérer avec mysql_fetch_array() cette variable :
$resultat["prix_total"];
ce qui est plus confortable et plus explicite que :
$resultat["SUM(prix)"];

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 20:13

je te conseille de créer ta requête d'abord dans phpMyAdmin ou autre, sans t'embarrasser du PHP

car là, c'est une erreur de PHP que tu fais, ce qui t'empêche de tester ta requête
$req="SELECT UNIX_TIMESTAMP(datex) from contrat where id_co=1";
mysql_query($req) or die (mysql_error());

echo $req['datex'];
tu affiches
$req['datex']
or où sélectionnes-tu "datex" ?
réponse : nulle part, puisque tu sélectionnes UNIX_TIMESTAMP(datex)

donc, réalise cette requête d'abord dans une interface de ta base de données, ce sera plus confortable

sinon pour info : quand tu sélectionnes des données en utilisant une (ou plusieurs !) fonctions (comme celle-ci, ou COUNT(), ou SUM() ...etc) et que tu veux utiliser un tableau associatif pour les résultats
tu peux renommer le champ de sortie, avec AS
comme ceci :

Code : Tout sélectionner

SELECT SUM(prix) AS prix_total
tu pourras ensuite récupérer avec mysql_fetch_array() cette variable :
$resultat["prix_total"];
ce qui est plus confortable et plus explicite que :
$resultat["SUM(prix)"];
Oki bon j'ai saisi l'idée et apres verif de la requette :
$req=mysql_query("SELECT UNIX_TIMESTAMP(datex) as date_fin from contrat where id_co=1");
$resu=mysql_fetch_array($req) or die (mysql_error());

echo $resu['date_fin'];
ce qui me donne un résultat "1136070000 "

donc apres il faut faire la diff entre celle ci et la date actuelle comment avoir le timestemp de la date actuel ?

Merci bcp+

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 juil. 2005, 20:26

tu veux dire : comment avoir la date actuelle
car avoir le timestamp tu sais déjà faire ;)

il te vient toujours pas à l'idée d'aller voir la page des fonctions de dates pour essayer de trouver la fonction qui convient par toi-même ???
je te redonne le lien une quatrième fois : http://dev.mysql.com/doc/mysql/fr/date- ... tions.html

je sais ça fait beaucoup de texte d'un coup, mais ces fonctions sont simples pour la plupart
et avec une petit Ctrl+F sur la page avec "courante", tu trouves vite une fonction qui renvoie la date courante

et il y en a plusieurs...

tu gagneras du temps en cherchant toi-même et en ne postant que si tu galères vraiment ;)

:)
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 20:48

tu veux dire : comment avoir la date actuelle
car avoir le timestamp tu sais déjà faire ;)

il te vient toujours pas à l'idée d'aller voir la page des fonctions de dates pour essayer de trouver la fonction qui convient par toi-même ???
je te redonne le lien une quatrième fois : http://dev.mysql.com/doc/mysql/fr/date- ... tions.html

je sais ça fait beaucoup de texte d'un coup, mais ces fonctions sont simples pour la plupart
et avec une petit Ctrl+F sur la page avec "courante", tu trouves vite une fonction qui renvoie la date courante

et il y en a plusieurs...

tu gagneras du temps en cherchant toi-même et en ne postant que si tu galères vraiment ;)
ok alors la j'ai tout les 2 timestemple date actuelle et celle de ma base, comment on les comparre (mois ou jours)
$date=date("Y-m-d");
$req=mysql_query("SELECT UNIX_TIMESTAMP(datex) as date_fin from contrat where id_co=1");
$resu=mysql_fetch_array($req) or die (mysql_error());

$fintimes=$resu['date_fin']-mktime(0 , 0 , 0 , date("m") , date("d") , date("Y"));
echo $fintimes;
J'ai pas trouvé :(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 juil. 2005, 08:59

déjà tu peux récupérer la date du jour directement en SQL, plutôt que de le faire en PHP, ce sera plus rapide

avec la fonction NOW() par exemple, qui te renvoit le datetime courant

donc tu peux faire

Code : Tout sélectionner

SELECT UNIX_TIMESTAMP(now()) AS timestamp_courant, UNIX_TIMESTAMP(datex) AS timestamp_datex, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(datex) AS difference FROM contrat WHERE id_co = 1
tu auras une différence en secondes entre tes deux dates