Over dagsdato

Tags:    php

<< < 123 > >>
Jeg er igang med et cashback site, og er stødt på et problem, kampagnerne skal jo lukke, når en datoen er over udløbsdato.

Har tilføjet et felt der hedder udløbsdato til min db, men hvordan i hulan tjekker jeg det? Har tænkt lidt på:

if($row[udlob] <= now()) { }

Men tror næppe det er rigtigt?

Kan der muligvis være en bedre ting at gøre? Eller en lettere?



Indlæg senest redigeret d. 12.05.2009 16:25 af Bruger #14124
21 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Så får jeg blot i min database udløb som:

0000-00-00 00:00:00



Så får jeg blot i min database udløb som:

0000-00-00 00:00:00
hvad er feltets type i databasen?



Du kan lige se mit sql dump til den,


CREATE TABLE IF NOT EXISTS `vip_kampagner` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tekst` text NOT NULL,
`link` text NOT NULL,
`type` varchar(255) NOT NULL,
`udlob` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`point` varchar(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Det er den der hedder udlob, der står ikke noget verchar eller int, men blot timestamp som type



jeg vil citere mig selv i min første post i den her tråd:
Feltet i databasen skal være af typen INT for at kunne rumme et timestamp - MySQL gemmer timestamps af typen TIMESTAMP anderledes, og derfor vil den felttype ikke virke.




Kan jeg lave det om til int :I?



Jamen, så skal typen da ikke være timestamp?



Jamen, så skal typen da ikke være timestamp?


Nej typen skal ikke være timestamp, men derimod INT. Det tal som mktime laver, kalder man for et timestamp, i mysql er timestamp typen dog noget andet.

Du skal redigere feltet og lave det om til INT, så skulle det virke.



Har fået lavet det om nu, kan ikke selv antyde tallene, og dermed ikke ved om det virker, men det satser jeg på.

Når jeg skal hente kampagner, er det så muligt også at gøre med min mysql query:

WHERE udlob >= time()



du burde kunne skrive det i en query:

mysql_query("SELECT * FROM vip_kampagner WHERE udlob>=".time());

synes lige jeg skal gøre opmærksom på at
mktime(0,0,0,$maaned,$dag,$aar);

altså er kl. 0 på den pågældende dag altså ubløber kampagned ved midnat den foregående dag. så ville måske være mere korrekt at skrive
mktime(23,59,59,$maaned,$dag,$aar);
så den udløber ved midnat på den valgte dag, det selvfølgelig et spørgsmål om hvordan man forstår udløbs dato.



Skal også sortere dem efter kategori, som ligger i type med 1, 2, 3 osv.

Så kan jeg vel bruge;

mysql_query("SELECT * FROM vip_kampagner WHERE udlob>=".time()." AND type = 1?



<< < 123 > >>
t