Gå til innhold

Anbefalte innlegg

Skrevet

Hei.

 

Jeg legger inn dette i mysql database

$dato = date("d/m/y H:i:s A");
mysql_query("INSERT INTO debat (navn, email, udannelse,besked, dato) VALUES ('$navn', '$email', '$udannelse', '$besked', '$dato')") or die(mysql_error());

 

og bruker denne kode for å hente verdiene fra databasen.

$foresp = mysql_query("SELECT navn, email,dato,udannelse, besked FROM debat ORDER BY dato DESC");

 

ORDER BY dato DESC => vil ikke ikke legge den siste post øverst...altså den nyeste dato skal øverst....

 

Hvorfor vil den ikke det..? og hvordan kan jeg løse dette..?

Videoannonse
Annonse
Skrevet

Tror vel at med dette: $dato = date("d/m/y H:i:s A");, så kan vi anta at det hele lagres som tekst.

 

Det er jo en grei sak all den tid man ikke bruker en database, men mysql.

  • 2 uker senere...
Skrevet

Hei,

 

Om dette er lagret i et tekstfelt (VARCHAR), vil den sortere alfabetisk, alstå ikke på den måten du er ute etter. MySQL har et datofelt, men dette må være på formatet YYYY-MM-DD HH:mm:ss/Y-m-d H:i:s (2008-04-29 22:56:28). Denne genererer jeg med

 

$dato = date("Y-m-d H:i:s");

 

Dette er sjelden dette er på formatet jeg vil ha det, derfor når jeg henter opp tiden igjen bruker jeg

 

date("d.m.Y",strtotime($rad['dato']))

 

Det jeg angrer på, som hadde vært lettere (tror jeg, kommenter meg gjerne på dette), var å lage datoen som et INT-felt med UNIX timestamp, altså time() (http://no2.php.net/manual/en/function.time.php) . Minst like lett å generere datoer ifra, og ikke minst å sortere.

 

Hawk

Skrevet

Prøv å gjøre cast eller convert til datetime-format i order by. Ikke sikker på om det er en forskjell mellom MySQL her og MS SQL, men i MSSQL ville jeg skrevet

"... order by convert(datetime, dato) desc "

 

<rant>

Er generelt en dårlig ide å lagre datoer som noe annet enn datoer. Selv om det kanskje ikke er et reelt scenario for deg nå, så tenk på hvordan en eller annen stakkar skal forholde seg til slike kode. Hvis jeg skulle tatt over din database, ville jeg forventet at en kolonne med navn "Dato" var nettopp dato, ikke en varchar eller en Int. Har hendt at jeg har mått på slike problemstillinger i jobben min, og har banna og sverta over folk som ikke klarer å forholde seg til riktige datatyper fordi de synes det er upraktisk.

</rant>

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...