Avatar billede nich01 Nybegynder
02. februar 2004 - 20:48 Der er 5 kommentarer og
1 løsning

sortering på dato

Hvordan sorterer jeg i min tabel, efter dato der ser således ud:

24-01-04 12:54

og der der skal være et limit på 10. jeg har prøvet med følgende men det virker desværre ikke....

$sql_body=mysql_query("SELECT forum_id, id, overskrift, newest_dato, replies FROM forum_body ORDER BY newest_dato DESC LIMIT 10") or die(mysql_error());
Avatar billede peterwr Nybegynder
02. februar 2004 - 20:56 #1
MySQL datoformat er fast YYYY-MM-DD - mon erfaring er, at man selv må tilpasse til korrekte datoformat for at MySQL "kan få det rigtigt" - så hvis du har angivet "24-01-04" ved opdatering, er der formentlig ikke registreret dato som forventet. Så det må du nok tjekke først.

MySQL vil sortere DESC på korrekt datformat.
Avatar billede erikjacobsen Ekspert
02. februar 2004 - 20:57 #2
Dit felt skal være af typen DATETIME - så kan du!
Avatar billede nich01 Nybegynder
02. februar 2004 - 21:32 #3
hvor dan sætter jeg så feltet til 24-01-04 12:54
Avatar billede erikjacobsen Ekspert
02. februar 2004 - 21:36 #4
Du opbevarer som DATETIME og bruger PHP til at vise det for brugeren i det format
du mener brugeren bør se.
Avatar billede nich01 Nybegynder
02. februar 2004 - 22:35 #5
Der er ikke en det lige ligger inde med en metode til at ændre formattet til PHP?
Avatar billede zeroaim Nybegynder
04. februar 2004 - 17:36 #6
Hejsa. Jeg er helt noob med det her programmering, men jeg prøver lige alligevel om ikke jeg kan hjælpe dig her. :-)

Jeg ville vælge at hente datoen i det format jeg ønsker at bruge, allerede når jeg henter det fra databasen (MySQL) og ikke ændre i formatet med PHP. Jeg har læst mig til at det er den bedste løsning, men jeg ved IKKE om dette har noget på sig !!!

Hvis du opretter din table noget lignende:

$sql = "CREATE TABLE forum_topics
            (
                topic_id int not null primary key auto_increment,
                topic_title varchar (150),
                topic_create_time datetime,
                topic_owner varchar (150)
            )";

Hvor du bruger "datetime" som tids angivelse.

Når du så gemmer datoen i tabellen bruger du bare "now()" som gemmer den helt standart (engelsk format).

Når du så ønsker at få den ud i et andet format kan du bruge noget som nedenstående:

$get_topics = "SELECT
                topic_id,
                topic_title,
                date_format(topic_create_time, '%e %b %Y at %r') as fmt_topic_create_time,
                topic_owner
              FROM
                forum_topics
              ORDER BY
                topic_create_time desc";

Dette er bare et eksemple på en formatering !!!

Håber du kan bruge det til noget (selvom det kommer fra en noob :-)

Mvh.
Henrik
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