Avatar billede tlunde Nybegynder
21. september 2005 - 09:14 Der er 8 kommentarer og
1 løsning

Vise annoncer efter udløbsdato?

Hejsa,
Jeg er ved at lave et annonce system, hvor jeg gemmer en annonce med funktionen: $dato= date('d/m/Y H:i:s');

Derudover bliver der sat en udløbsdato på annoncen via:
$dato_slut = date('d/m/Y H:i:s', strtotime('+ '.$radiobutton.' days'));

som kan være f.eks. 1 måned efter den er blevet oprettet.

Mit spørgsmål er så: Hvordan sortere jeg dem fra, hvor udløbsdatoen er overskredet? Skal på en eller anden måde lave et tjek på om $dato_slut er overskredet, hvordan går jeg det?
Avatar billede Slettet bruger
21. september 2005 - 09:17 #1
Det er nok nemmest hvis du gemmer et unix timestamp.

Hvis du f.eks. vil have et banner til blive vist i et måned, siger du:

$dato_slut = time() + (60*60*24*30);

Og så sætter du denne dato ind i din tabel.

Når du vil vise dine annoncer, kan du lave en query som denne:

SELECT felt1, felt2 FROM dintabel WHERE slutdato>='". time() ."'"
Avatar billede tlunde Nybegynder
21. september 2005 - 09:26 #2
Jeg har lavet det her nu, ved dog ik om det holder, om dato på denne måned kan kende forskel på hvad der er større og mindre end hinanden:

Annoncer der er aktive:
$dato = date('d/m/Y H:i:s');

$query = mysql_query("SELECT * FROM annoncer WHERE brugernavn = '$brugernavn' AND dato_slut > '$dato' ORDER BY id");
while ($row = mysql_fetch_array($query)) {

Annoncer der er inaktive:
$dato = date('d/m/Y H:i:s');

$query = mysql_query("SELECT * FROM annoncer WHERE brugernavn = '$brugernavn' AND dato_slut < '$dato' ORDER BY id");
while ($row = mysql_fetch_array($query)) {

Kan man gøre det sådan, eller skal der noget timestamp ind?
Avatar billede Slettet bruger
21. september 2005 - 09:53 #3
Det er nødvendigt at du sætter et timestamp ind -!  Ellers skal du have fat i nogle MySQL funktioner som jeg ikke kender til.
Avatar billede showsource Seniormester
21. september 2005 - 11:33 #4
Eller laver feltet i DB'en om til datetime, og gemmer i formatet 2005-09-21 11:30:00
$dato= date('Y-m-d H:i:s');

$query = mysql_query("SELECT * FROM annoncer WHERE brugernavn = '". $brugernavn ."' AND dato_slut > NOW() ORDER BY id");

Og du kan også altid formatere datoen i sql ved udtræk
Avatar billede tlunde Nybegynder
26. september 2005 - 09:14 #5
tak for hjælpen, svar?
Avatar billede Slettet bruger
26. september 2005 - 15:27 #6
Hvem hjalp dig?
Avatar billede tlunde Nybegynder
29. september 2005 - 09:10 #7
brugte dig wicez, så smid et svar...
Avatar billede Slettet bruger
29. september 2005 - 15:07 #8
Her kommer det ;o)
Avatar billede Slettet bruger
12. oktober 2005 - 07:58 #9
Tak for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester