04. oktober 2008 - 14:31
Der er
9 kommentarer og 1 løsning
Vis ikke, hvis udløbet
Hejsa Jeg er i gang med at lave et bannersystem. I det system kan man sætte en udløbsdato, hvor banneret skal stoppe med at blive vist. Denne udløbsdato er i formatet DD-MM-ÅÅÅÅ. Jeg skal vise et banner fra databasen, og derved tjekke om udløbsdatoen er overskredet. Hvordan gøres dette lettest?
Annonceindlæg fra SoftwareOne
04. oktober 2008 - 15:01
#1
SELECT * FROM `tabel` WHERE `dato` < CURDATE()
04. oktober 2008 - 15:06
#2
Har ikke testet dette, men tror du ikke at CURDATE bruger formatet MM-DD-ÅÅÅÅ? I så fald bliver jeg nødt til at ændre formatet inden jeg indsætter det i databasen :)
04. oktober 2008 - 15:27
#3
Arghh, mig som så forkert! Eneste løsning: ( hvis du spørger mig ) Lav en ny kolonne i din DB som er af typen "date" !!!!! Derved får langt nemmere "adgang" til data senere hen i liet ! :O) En update af DB kan nemt gøres med lidt php kode.
04. oktober 2008 - 15:28
#4
livet og ikke liet! :=) Gi mig lige 3-5 min. så får du lidt kode
04. oktober 2008 - 15:32
#5
Jeg venter ;)
04. oktober 2008 - 15:33
#6
Evt lav en explode af datoen når man gemmer, og sæt den i "rigtig" orden?
04. oktober 2008 - 15:46
#7
En løsning: $nytfelt = "nydato"; $tabel = "links"; $oldfield = "test"; $make_dato ="ALTER TABLE `".$tabel."` ADD `".$nytfelt."` DATE NOT NULL DEFAULT '0000-00-00'"; $do = mysql_query($make_dato) or die (mysql_error()); $dates = mysql_query("SELECT `".$oldfield."` FROM `".$tabel."`") or die (mysql_error()); while($new = mysql_fetch_object($dates)) { $olddato = $new->$oldfield; $dato = explode("-", $olddato); $newdate = $dato[2]."-".$dato[1]."-".$dato[0]; echo $newdate."<br>"; $sql = "UPDATE `".$tabel."` SET `".$nytfelt."` = '".$newdate."' WHERE `".$oldfield."` = '".$olddato."' LIMIT 1"; echo $sql."<br>"; mysql_query($sql) or die (mysql_error()); } En anden om lidt.....
04. oktober 2008 - 15:51
#8
$dates = mysql_query("SELECT `".$oldfield."` FROM `".$tabel."`") or die (mysql_error()); while($new = mysql_fetch_object($dates)) { $olddato = $new->$oldfield; $dato = explode("-", $olddato); $newdate = $dato[2]."-".$dato[1]."-".$dato[0]; echo $newdate."<br>"; mysql_query("UPDATE `".$tabel."` SET `".$oldfield."` = '".$newdate."' WHERE `".$oldfield."` = '".$olddato."' LIMIT 1") or die (mysql_error()); } $change = "ALTER TABLE `".$tabel."` CHANGE `".$oldfield."` `".$oldfield."` DATE NOT NULL DEFAULT '0000-00-00'"; $do = mysql_query($change) or die (mysql_error());
05. oktober 2008 - 15:24
#9
Du burde lave din databasestruktur om, så datoen blev gemt som en dato og ikke som en streng.
14. november 2008 - 20:52
#10
Lukker :)
Vi tilbyder markedets bedste kurser inden for webudvikling