Avatar billede shjorth Nybegynder
30. december 2007 - 14:51 Der er 13 kommentarer og
2 løsninger

Forkert sortering fra mysql

Hejsa.

Jeg har en tabel med nogle tidspunkter (f.eks 8:00)

Jeg vil gerne have dem skrevet ud derfor henter jeg dem:

SELECT * FROM blaa ORDER BY tid ASC

Men så vil en sortering f.eks se sådan her ud:

12:00
- Tekst

8:00
- Tekst

9:00
- Tekst

Jeg er interesseret i det ser sådan her ud:

8:00
- Tekst

9:00
- Tekst

12:00
- Tekst

tid i min database er "tinytext" hvor tidsværdien bliver sat ind.

Håber der er nogen der kan hjælpe :)
Avatar billede w13 Novice
30. december 2007 - 14:54 #1
Ret blot ASC til DESC.
Avatar billede w13 Novice
30. december 2007 - 14:55 #2
Jeg går ud fra, at dit første eksempel ikke skulle være 12, 8, 9 men 12, 9, 8.
Ellers er det en meget mærkelig fejl i hvert fald. =)
Avatar billede leif Seniormester
30. december 2007 - 14:56 #3
Svaret er at du gemmer det som text derfor kommer 1 før 8 og derfor kommer 12 før 8 da den sorterer venstrestillet.

Gem det som time så burde den være OK
Avatar billede terry Ekspert
30. december 2007 - 14:57 #4
if the times are in text then 12 comes before 8 as it starts with 1
Avatar billede shjorth Nybegynder
30. december 2007 - 14:57 #5
w13 Nej den er god nok, det er sådan den skriver det ud.

Men Leif. Du har jo ret, det virker ;)
Avatar billede w13 Novice
30. december 2007 - 14:57 #6
Ja, okay, jeg kan se, jeg misforstod. =) Det skal fortsat være ASC og ikke DESC og Leif har helt ret.
Avatar billede leif Seniormester
30. december 2007 - 14:58 #7
Så vil jeg da smide et svar, men ikke til 60 point
Avatar billede shjorth Nybegynder
30. december 2007 - 14:58 #8
En hurtig en.. Hvis jeg skal undgå at få værdier der er: 08:00:00 med "TIME" hvad gør jeg så?
Altså jeg ser helst værdierne som: 08:00 fremfor 08:00:00
Avatar billede shjorth Nybegynder
30. december 2007 - 14:59 #9
Ikke desto mindre siger jeg mange tak.
I får bare begge point, ellers må i lige skrive hvis der er brok ;)
Avatar billede w13 Novice
30. december 2007 - 15:00 #10
Den letteste løsning vil nok være at indstille det i databasen - de fleste databaser giver mulighed for at vælge imellem forskellige dato-/tid-formater.

Alternativt må det programmeres, men det er ikke en helt optimal løsning, synes jeg, hvis det bare kan fikses i db.
Avatar billede w13 Novice
30. december 2007 - 15:00 #11
Og jeg takker for point. =)
Avatar billede shjorth Nybegynder
30. december 2007 - 15:01 #12
Tænker lidt der må være en måde i PHPmyAdmin. Men jeg kan ikke lige umidlebart se den :P
Avatar billede leif Seniormester
30. december 2007 - 15:01 #13
substr($row["tid"],0,5)
Avatar billede leif Seniormester
30. december 2007 - 15:02 #14
Lav en funktion som laver:
$tid = substr($row["tid"],0,5);

echo $tid;
Avatar billede leif Seniormester
30. december 2007 - 15:03 #15
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