Toon posts:

sorten tip1 tip11 tip2 tip24 tip3

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik haal een rij uit mysql met php:

tip1
tip11
tip2
tip23
tip3

Maar ik wil ze zo sorteren:

tip1
tip2
tip3
tip11
tip23

Ik weet dat het kan maar hoe? EN kan ik dat ook in de mysql query verwerken?

Verwijderd

zet er een nulletje voor.
sim-pel

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 12:34

TheDane

1.618

of met zoiets:
code:
1
2
3
select bladiebla 
[..]
order by tip, length(tip);

Verwijderd

Topicstarter
het werkte met:

Order by CHAR_length(tip)

Dus zonder de tip,


Maar bedankt voor de "tip". ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

Op woensdag 16 januari 2002 10:20 schreef worldpunch het volgende:
het werkte met:

Order by CHAR_length(tip)

Dus zonder de tip,


Maar bedankt voor de "tip". ;)
Zet die tip er nu maar gewoon bij, want zoals je het er nu heb staan is
tip10
tip99
goed, maar ook
tip99
tip10

Dat het er allemaal goed uit lijkt te komen is omdat het waarschijnlijk al redelijk op volgorde uit de db wordt gehaald...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

php » NatSort() :?

Stop uploading passwords to Github!


Verwijderd

Sorteren op rigth(tip,len(tip)-3). nou maar hopend dattie de overgebleven string als number ziet. Anders moet je nog iets doen als text2number(rigth....) kweet de syntax niet.

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Misschien moet je alleen het nummer van de tip in de database zetten en daar gewoon op sorteren? Dan kun je in PHP die "tip" ervoor plakken indien nodig.

Verwijderd

Kon het niet laten het effe zelf te proberen, liep er zelf namelijk ook al eens tegenaan. Hoewel het inderdaad zo is dat je het jezelf niet erg gemakkelijk maakt, je kunt altijd beter gewoon op nummer sorteren, en dan voor de uitvoer voor de gebruiker het woord 'tip' er effe voorplakken. Maar goed, dit werkt in een query in MSAccess ( niet meteen gaan :r )

order by CInt(Right([TIP];Len([TIP])-3))

cint maakt een integer van de string. Clng maakt een long en Cdbl maakt een double.

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Lengte - 3? Dan ga je er toch vanuit dat het nummer tussen 10 en 100 zit?

  • tomato
  • Registratie: November 1999
  • Niet online
Misschien is het een stuk constructiever om eens over je datamodel na te gaan denken.

Lees bijvoorbeeld de eerste reply van OlafvdSpek nog eens.

Verwijderd

Er is een simpele functie om op die manier te sorteren namelijk natsort() zie hier de beschrijving Maar dan moet je wel met arrays werken en minimaal php 4 hebben.
Pagina: 1