Forum d'entraide PHPFrance

Venez poser vos questions PHP, MySQL, HTML, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

Soustraction entre deux dates...

Questions sur le SQL et les bases de données (MySQL, PostgreSQL, etc..).

Soustraction entre deux dates...

Messagepar undesignable 06 Jan 2007, 17:05

Bonjour,

Je suis nouveau, ne suis pas developpeur, mais essaye de toruver des solutions pour mon site.

Je voudrais pourvoir trouver la nombre de jours entre deux dates.
Date 1 = date de depart
DAte 2 = date de fin

Jai fais ca :
-----------------------
$Ar = $data_de_la_table['DateDeLarrive'];

$dp = $data_de_la_table['DateDuDepart'];

$sql1 = "SELECT DAYOFMONTH('$Ar')";
$req1 = mysql_query($sql1) or die(mysql_error());
$data_Ar = mysql_fetch_array($req1);

$sql2 = "SELECT DAYOFMONTH('$dp')";
$req2 = mysql_query($sql2) or die(mysql_error());
$data_dp = mysql_fetch_array($req2);

$resultat = $data_dp[0] - $data_Ar[0] ;

echo $resultat
----------------------

mais bon, ca marche pour deux dates du meme mois, en l'occurence.

N'existe-t-il pas une fonction MySql qui permette de calculer le nombre de jours au moment ou on lit la table ? a l'extraction des deux dates...?

Quelle en ai la syntaxe.
Je ne comprend pas bien comment on utilise DATE_SUB() et son copain...

Merci d'avance
Ric
Il n'y a pas de mauvaises saisons, seulement de mauvais vetements
undesignable
Maitre du phpinfo()
 
Messages: 28
Inscription: 06 Jan 2007, 16:57
Localisation: Berlin

Messagepar Cyrano 06 Jan 2007, 17:19

Alors utilise DAYOFYEAR(date) : ça fonctionnera sur des dates à cheval sur plusieurs mois. Par contre tu retomberas dans le même problème avec des dates à cheval sur plusieurs années.

Alors en explorant plus loin dans la doc, on trouve aussi ceci :
l'auteur du manuel MySQL a écrit:DATEDIFF(expr,expr2)

DATEDIFF() retourne le nombre de jours entre la date de début expr et la date de fin expr2. expr et expr2 sont des expressions de type DATE ou DATETIME. Seule la partie DATE est utilisée dans le calcul.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31');
-> -30

DATEDIFF() est disponible depuis MySQL 4.1.1.

et en SQL, tu traduis ça avec le nom de tes champs de date :
SELECT DATEDIFF(champ_date_1, champ_date_2);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:
Avatar de l’utilisateur
Cyrano
Ganesha
 
Messages: 19577
Inscription: 07 Fév 2005, 15:27
Localisation: Paris XIII

Messagepar undesignable 06 Jan 2007, 17:27

Salut,

Merci.

J'ai essayé, mais j'ai un probleme de syntaxe avec les doubles guillements :

SELECT DATEDIFF('data['datedebut']','data['dateFin']');

mais p't'être
SELECT DATEDIFF('$dp','$Ar');
que ca c'est mieux.

j'y retourne.
merci encore

@+
Il n'y a pas de mauvaises saisons, seulement de mauvais vetements
undesignable
Maitre du phpinfo()
 
Messages: 28
Inscription: 06 Jan 2007, 16:57
Localisation: Berlin

Messagepar Cyrano 06 Jan 2007, 17:31

undesignable a écrit:SELECT DATEDIFF('data['datedebut']','data['dateFin']');

:shock: C'est quoi ça ???
Les paramètres de DATEDIFF doivent être soit le nom d'un champ de ta base soir une date formatée convenablement. Là, tu as mis quelque chose qui ressemble vaguement à un tableau : il n'existe pas de tableaux en SQL.

Donc au final, je ne comprends pas ce que tu essayes de faire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:
Avatar de l’utilisateur
Cyrano
Ganesha
 
Messages: 19577
Inscription: 07 Fév 2005, 15:27
Localisation: Paris XIII

Messagepar Truc 06 Jan 2007, 17:42

Cyrano a écrit:
undesignable a écrit:SELECT DATEDIFF('data['datedebut']','data['dateFin']');

:shock: C'est quoi ça ???

Hi hi
ça doit venir de là :
Syntaxe: [ Télécharger ] [ Masquer ]
Code php
$Ar = $data_de_la_table['DateDeLarrive'];

$dp = $data_de_la_table['DateDuDepart'];

des données d'avant la requête.
Sinon j'aime bien donner ce sujet à lire :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute
Avatar de l’utilisateur
Truc
Modérateur PHPfrance
Modérateur PHPfrance
 
Messages: 7637
Inscription: 01 Sep 2005, 18:56
Localisation: Lille

Messagepar undesignable 06 Jan 2007, 18:12

<?
$sql = "SELECT DATEDIFF(R1_DA, R1_DD) FROM nom_tble WHERE id=".$_SESSION['id'];
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_array($req);
?>
--- --- --- --- --- ---</br>
<?=$data?> night(s)

Ca ne marchais pas et obtenais :

Array night(s)

forcement, les tableaux....
--> <?=$data[0]?> night(s)

Merci beaucoup a tous les deux.

Cordialement votre
ric
Il n'y a pas de mauvaises saisons, seulement de mauvais vetements
undesignable
Maitre du phpinfo()
 
Messages: 28
Inscription: 06 Jan 2007, 16:57
Localisation: Berlin

Messagepar fab 06 Jan 2007, 20:21

Petit plus il est de plus en plus déconseillé d'utiliser lesshorts tags en php
à savoir remplacer :
<? par <?php
et
<?=$var; ?> par <?php echo $var; ?>

Explication : Avec la multplication actuellement de XML sur la toile de plus en plus d'hébergeur désactivent la directive shorts_tags dans la configuration de php car celà pose un problème ( facilement contournable ) lors de la génération des headers XML.
( En tout cas c'est une des raisons )
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }
fab
ViPHP
ViPHP
 
Messages: 2657
Inscription: 07 Fév 2005, 21:11
Localisation: Bordeaux

Messagepar undesignable 07 Jan 2007, 09:57

oula,

ben merci du tuyau. Je ne savais pas. vais me coller sur un rechercher/remplacer rapidos...

Sinon,
Auriez-vous l'adresse d'un editeur, autre que wordPad,
avec par exemple, le numero des lignes, et des distinctions de couleurs ?
en free, biensur. (J'aime bien l'idée des logiciels libre de droits)

suis pas trés habitué au Forum, mais ca a l'air sympas chez vous.

Les autres rubriques sont trés pedagogiques, et on apprend pas mal de trucs.

@+ :wink:
Il n'y a pas de mauvaises saisons, seulement de mauvais vetements
undesignable
Maitre du phpinfo()
 
Messages: 28
Inscription: 06 Jan 2007, 16:57
Localisation: Berlin

Messagepar Truc 07 Jan 2007, 14:39

undesignable a écrit:suis pas trés habitué au Forum, mais ca a l'air sympas chez vous.
Les autres rubriques sont trés pedagogiques, et on apprend pas mal de trucs.

Tu n'en repartiras jamais déçu :)

Pour l'éditeur jette un oeil à "Notepad++"

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute
Avatar de l’utilisateur
Truc
Modérateur PHPfrance
Modérateur PHPfrance
 
Messages: 7637
Inscription: 01 Sep 2005, 18:56
Localisation: Lille

Messagepar undesignable 07 Jan 2007, 18:35

J'ai telecharger et installer notepadd++.

La grande classe !!!

Ouaaaahou !

Ca fait tout drole. J'etais habitué au wordpad de windows, mais la ...

@+ :-({|=
nooooooon je ne regreeeeeettttteeeee rieeeeennnnn.

Merci
Il n'y a pas de mauvaises saisons, seulement de mauvais vetements
undesignable
Maitre du phpinfo()
 
Messages: 28
Inscription: 06 Jan 2007, 16:57
Localisation: Berlin


Retourner vers SQL & Bases de données

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités