The Prodigy Skrevet 5. mai 2008 Skrevet 5. mai 2008 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..?
Kul drittunge Skrevet 5. mai 2008 Skrevet 5. mai 2008 Høm, ser du legger inn dato i anførselstegn. Kan det være så enkelt som at datoen lagres som en tekststreng?
Kul drittunge Skrevet 6. mai 2008 Skrevet 6. mai 2008 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.
Hawk_AA Skrevet 18. mai 2008 Skrevet 18. mai 2008 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
Kul drittunge Skrevet 23. mai 2008 Skrevet 23. mai 2008 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.
Kirikiri Skrevet 25. mai 2008 Skrevet 25. mai 2008 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>
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå