Gå til innhold

Anbefalte innlegg

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..?

Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

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

Lenke til kommentar
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) .

 

Prossessering frem og tilbake fra sekunder til dato? For å lagre dato?

 

Heller dårlig ide, som faktisk trekkes frem som et skrekkeksempel i de første kapittlene i boka for mssql eksamen.

Lenke til kommentar

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>

Lenke til kommentar

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