INTERVAL DAY dynamique

Mammouth du PHP | 1339 Messages

12 mars 2011, 01:32

Hello,

Dans ma base de données, j'ai ma date de départ ... (Aujourd'hui pourquoi pas)
Et j'ai le nombre de jour ...
Comment recuperer ma date d'arrivée ?

J'ai voulu le faire en PHP mais avec les changement d'heure d'été ou d'hiver c'est un peu casse couille.
Je voulais donc faire un INTERVAL DAY mais que le chiffre soit dynamique

WHERE DATE_ADD(`depart`, INTERVAL `jour` DAY)

Il y a t il une parade ?

Merci,

Elie
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
ViPHP | 2291 Messages

22 mars 2011, 21:44

Salut,

Comme ceci peut-être

Table exemple :
CREATE TABLE IF NOT EXISTS `test_date` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `DATE_TEST` date NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `test_date`
--

INSERT INTO `test_date` (`ID`, `DATE_TEST`) VALUES
(1, '2011-03-22');
$Ajout_jour = 5;

$sql = "SELECT ADDDATE(date_test, INTERVAL $Ajout_jour DAY) AS resultat FROM test_date";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_object($req);

echo $data->resultat;
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1339 Messages

23 mars 2011, 11:37

Comme ca oui :)
Mais imagine que " 5 "est une information dans cette meme base de données !
CREATE TABLE IF NOT EXISTS `test_date` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `DATE_TEST` date NOT NULL,
 `nuits` int(2) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Bon sinon tu me fais un message privé et on se fait un TeamViewer

ViPHP
ViPHP | 2291 Messages

23 mars 2011, 11:56

Salut,

Simplement comme ceci
"SELECT ADDDATE(date_test, INTERVAL nuits DAY) AS resultat FROM test_date";
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 1339 Messages

23 mars 2011, 12:08

J'avais essayé avant et ca n'avait pas marché :/
Je crois que je n'avais pas transformet mon timestamp en FROM_UNIXTIME

Résultat :
UNIX_TIMESTAMP(ADDDATE(FROM_UNIXTIME(`tbl_croisiere`.`depart`, '%Y-%m-%d %H.%i.%s'), INTERVAL `tbl_croisiere`.`nuits` DAY)) AS `arrivee`
Merci d'avoir relancer le sujet ca m'a obligé d'y reréfléchir !
Bon sinon tu me fais un message privé et on se fait un TeamViewer