Avatar billede arkanoid Nybegynder
29. december 2004 - 12:53 Der er 5 kommentarer og
1 løsning

Opdatere data i tabel - og sortere dem

Spørgsmålet er muligvis lidt kryptisk, men jeg forsøger, ikke desto mindre at formulere det ordentligt.

Jeg ønsker en mulighed for at kunne opdatere data i en tabel, lad os f.eks. sife at den indeholder nyheder.

Det, i sig selv, er ikke noget problem, det kan jeg godt klare med alm MySQL og PHP.
Problemet kommer, i at jeg ønsker at nyheden kommer til at ligge øverst på den side, der viser nyheden, altså som "nyeste" nyhed.

Når jeg henter data ud fra tabellen sorterer jeg dem efter ID, en int jeg har sat til primær og auto_increment. Men den tager jo ikke højde for, hvornår nyheden sidst er _redigeret_, kun hvornår den er lavet.

Når jeg indsætter datoen i tabellen, er det i dette format: DD/MM-ÅÅ Kl: HH:MM
så det kan jeg heller ikke sortere efter.

Spørgsmålet er hvad jeg så gør. Jeg har overvejet muligheden for at indsætte dato i UNIX Epoch i stedet, men i så tilfælde, hvordan omregner jeg så det til en dato, der er menenskelig aflæselig?

Jeg kunne vel også lave et felt, der indeholder epoch, og så kun bruge det til at sortere efter, men ikke til at fremvise datoen.

Kan en af mine idéer bruges eller er jeg helt på afveje (og i så tilfælde, hvad skal jeg så gøre) ?
---
Arkanoid
Avatar billede yellow Nybegynder
29. december 2004 - 13:00 #1
Hvis du gemmer datoen i et felt at typen "date" kan du godt sortere efter det.
Avatar billede arkanoid Nybegynder
29. december 2004 - 13:02 #2
Ahhh.... okay... vidste slet ikke at den type fandtes... mange tak for hjælpen
Avatar billede elskermad.dk Nybegynder
29. december 2004 - 13:04 #3
jeg bruger altid time() funktionen til at gemme datoer i... så kan du bruge http://dk2.php.net/getdate til at lave den om til noget læseligt :)

eller brug denne funktion (selvlavet så sikkert nogen der kan lave den bedre)

<?

function formattime($time) {
    $d = getdate($time);
   
    if ($d[mday] < 10) $dato = 0 . $d[mday]; else $dato = $d[mday];
    if ($d[mon] < 10) $maned = 0 . $d[mon]; else $maned = $d[mon];
   
    if ($d[hours] < 10) $time = 0 . $d[hours]; else $time = $d[hours];
    if ($d[minutes] < 10) $minut = 0 . $d[minutes]; else $minut = $d[minutes];
   
    $ar = $d[year];
   
    return $dato . "/" . $maned . "-" . $ar . " " . $time . ":" . $minut;
}

?>
Avatar billede arkanoid Nybegynder
29. december 2004 - 13:08 #4
Dvs du gemmer epoch værdien i en database, og laver den efterfølgende om til noget læseligt, når den hentes frem igen
Avatar billede elskermad.dk Nybegynder
29. december 2004 - 14:42 #5
jes... hvis epoch værdien er ligmed time()-funktionen :) det er også noget nemmere at finde data inden for en bestemt periode så!

WHERE tidspunkt > '$fra' AND tidspunkt < '$til'

hvor $fra og $til kan lave med mktime() (http://dk2.php.net/mktime)
Avatar billede arkanoid Nybegynder
29. december 2004 - 14:45 #6
mjoh... men til det her formål... hvor den skal bruges som dato/tids angivelse for nyheder, indlæg, kommentarer og lign. der fungere dit første forslag helt fint
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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