Avatar billede blueeye97 Nybegynder
04. august 2004 - 10:52 Der er 14 kommentarer og
1 løsning

sortere efter dato

Jeg har en database (mysql) hvor jeg gerne vil sortere efter dato. Feltet hvor datoen stå er et tinytxt. Problemet er, at sorteringen ikke virker. Hvis jeg laver feltet om til et datofelt, ´bliver det lavet til engelst format åååå-mm-dd.

Hvordan kommer jeg uden om det ?
Avatar billede blueeye97 Nybegynder
04. august 2004 - 11:10 #1
Hmmm... Jeg læste lige http://www.eksperten.dk/spm/513455

Er det den vej jeg skal ?
Avatar billede dcheng Novice
04. august 2004 - 12:44 #2
Hvis den dato er en "timestamp" altså eksempelvis det tidspunkt du poster... Så kan du bare lave en række som hedder ID med auto_incredment også sortere efter den.
Avatar billede coderdk Praktikant
04. august 2004 - 12:49 #3
Evt gem datoen som int og gem et php time()-stamp. Den er nem at sortere efter og du kan selv lave datoformatet som du lyster med date().
Avatar billede blueeye97 Nybegynder
04. august 2004 - 12:52 #4
Naah..

Det er et lille bokkingscript af et lokale. Datoen der skal sorteres efter, er den dag lokalet er reserveret og det er jo ikke et autoincr. felt.

Jeg har "bare" lavet et tinytxt og udfyldt det f.eks. 03-08-2004

Problemet er, at at når jeg så vælger at sortere efter dato, så ser sql kun de første tal.

Det ser f.eks. sådan her ud:

21-12-2003
15-09-2004
02-09-2004
01-10-2004

Sorteringen er som jeg ser det, kun efter de første 2 tal..
Avatar billede blueeye97 Nybegynder
04. august 2004 - 12:53 #5
Coderdk > how ? :o)
Avatar billede coderdk Praktikant
04. august 2004 - 12:56 #6
Lav et nyt felt i databasen af typen INT, og indsæt sådan:

$sql = "INSERT INTO din_tabel SET dit_timestamp = " . time();

Når du så hiver dem ud med:

$sql = "SELECT dit_timestamp FROM din_tabel WHERE din_id = 1";
Så kan du skrive en pæn dato med: echo date("d/m-Y H:i:s", $raekke['dit_timestamp'] );
Avatar billede coderdk Praktikant
04. august 2004 - 12:57 #7
YYYY-MM-DD [HH:MM:SS] er ellers perfekt at sortere efter ;) Du kan jo også bare skille tallene fra hinanden og vise dem som du vil...
Avatar billede detox Nybegynder
04. august 2004 - 13:04 #8
Der er en masse fordele ved at bruge MySQL's egeg DATE felt. Du kan sortere efter alle mulige ting fx: år,måned, uge eller ugedage. Og du kan få udtrækket ud nøjagtig som du ønsker med DATE_FORMAT() (fx: DATE_FORMAT(dato, '%d-%m-%Y')). Alternativt så gem php's time(), som coderdk siger. Så kan du evt. sortere vha. FROM_UNIXTIME().
Avatar billede blueeye97 Nybegynder
04. august 2004 - 16:25 #9
Ok. takker :o)
Avatar billede blueeye97 Nybegynder
04. august 2004 - 22:08 #10
Min SQL ser sådan her ud. Hvordan splitter jeg $data[2] op så jeg får byttet om. Jeg har lavet feltet om til et DATE felt. Så det skrives jo umiddelbart åååå-mm-dd ?

while($data = mysql_fetch_row($foresp)){
echo "<td width=150 height=21><font size='2' face='verdana'>$data[0]</td>";
echo "<td  width=150><font size='2' face='verdana'>$data[1]</td>";
echo "<td  width=150><font size='2' face='verdana'>$data[2]</td>";
echo "<td  width=150><font size='2' face='verdana'>$data[3]</td>";
echo "<tr><td colspan=4><HR noshade size=1></td></tr>";
}
Avatar billede blueeye97 Nybegynder
04. august 2004 - 22:15 #11
Jeg prøvede lige :

echo "<td  width=150><font size='2' face='verdana'>DATE_FORMAT($data[2], '%d-%m-%Y')</td>";

Men det gik ikke liiiige :o)
Avatar billede detox Nybegynder
04. august 2004 - 22:21 #12
DATE_FORMAT skal bruges direkte i forespørgslen alá:

$res = mysql_query("SELECT *,DATE_FORMAT(dato_felt, '%d-%m-%Y') AS dansk FROM tabel");
Avatar billede detox Nybegynder
04. august 2004 - 22:22 #13
Resultatet ligger så i fx: $data['dansk']
Avatar billede blueeye97 Nybegynder
04. august 2004 - 22:39 #14
Bum Bommelum :o)

Detox redede min dag ...

svar lige ikk'
Avatar billede detox Nybegynder
05. august 2004 - 16:10 #15
Jo da.
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