Avatar billede soduno Novice
23. december 2010 - 22:42 Der er 6 kommentarer og
1 løsning

PHP, Event kalender - Nyeste arrangementer

Jeg er i gang med at lave en event-kalender. Er næsten færdig med scriptet, men mangler lige at få vist de 3 nyeste arrangementer. Pinligt nok kan jeg ikke huske hvordan man laver den funktion.

Jeg har datoen i en række der hedder date, og er formateret på følgende måde: d/m/y. Eks: 22/12/2010

Vh
Simon
Avatar billede webweaver Praktikant
23. december 2010 - 23:39 #1
Har du ikke et id i din database også? Det er en dårlig måde som du skriver dato på i databasen, da der ikke kan sorteres efter dette format. Derfor bruges id istedet her.

SELECT * FROM tabel ORDER BY id DESC LIMIT 3


Hiver de 3 nyeste rækker ud af databasen :)
Avatar billede soduno Novice
23. december 2010 - 23:42 #2
Jo, jeg har da et id :). Men hvorfor sortere efter id'et, det vil da bare resultere i en order konfligt da brugeren jo selv indtaster datoen for det event han har oprettet.
Avatar billede webweaver Praktikant
24. december 2010 - 00:10 #3
Hvis det er på den måde dit system fungerer, så skal du sortere efter datoen. Den må du lave om i såfald, da du ikke kan sortere efter dit format!

Du kan lave det om til Unix Epoch istedet f. eks, hvilket er let at sortere efter.

$tid = mktime(TIMER, MINUTTER, SEKUNDER, MÅNED, DATO, ÅR);


Fx, 22/12/2010 (og hvis tid er ligegyldigt, sættes den bare til noget fast)

$tid = mktime(3, 0, 0, 12, 22, 2010);


Så kan du bare sætte dine variabler ind istedet fra de inputfelter eller hvor du nu har dine data fra;

$tid = mktime(3, 0, 0, $month, $day, $year);


og sætte $tid ind i din database i dato feltet.

Så kan du sortere efter dato :)

SELECT * FROM tabel ORDER BY dato DESC LIMIT 3


Når du skal vise dato'en igen, gøres det ved at skrive;

echo date("j/n/Y", $tid);


$tid er det tal du henter ud fra dato feltet af.
Avatar billede soduno Novice
24. december 2010 - 00:16 #4
Tak for det - der var løsningen. Smider du lige et svar? :)
Avatar billede webweaver Praktikant
24. december 2010 - 00:37 #5
Godt at det kører nu.

God jul og alt det der .. :)
Avatar billede arne_v Ekspert
24. december 2010 - 04:03 #6
Generelt er det ikke godt at gemme dato og tid som VARCHAR. Med DATETIME eller TIMESTAMP kan den umiddelbart sorteres. Jeg ville heller ikke bruge en INTEGER med sekunder siden 1970, når der eksisterer data typer beregnet til dato og tid.
Avatar billede soduno Novice
24. december 2010 - 13:01 #7
#5 i lige måde ;)
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
Kurser inden for grundlæggende programmering

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