nummer aanvullen met '0'.
Ik heb een database met leden van een club.
Deze leden hebben bij aanmelding allemaal een lidnummer gekregen.
Nu wil ik graag sorteren op aflopend nummer zodat ik altijd de laaste leden het eerst zie.
Wat is nu het probleem:
Hij ziet bijvoorbeeld 800 als een groter getal dan 1000.
Nu ben ik handmatig vóór alle nummers één om meer nullen aan het zetten maar dat is natuurlijk een heidens karwij.
Kan dat ook anders?
Alvast bedankt voor jullie reacties.
John
Het lidnummer is zeker opgeslagen in een varchar kolom? Als het namelijk een int is en je sorteert met SQL dan gaat het prima hoor.
wil je in de weergave dan toch een 4 cijferig nummer weergeven, gebruik dan voorloopnullen:
(800 is namelijk wel heel anders dan 8000, je kan daar (puur voor de weergave) wel 0800 van maken. Dat doe je met sprintf()
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Als je handmatig nullen voor het getal kunt zetten, en 800 als groter gezien wordt dan 1000... Dan is het onmogelijk dat je een getal opslaat in je database.
Waarschijnlijk sla je het nummer op in een varchar veld ofzo, waardoor de database bij het sorteren niet kijkt naar de hoogte van het getal, maar alfabetisch sorteert. Hierdoor komt 1000 voor 800.
Als je het veld aanpast naar bijvoorbeeld een INT, zul je zien dat de sortering wel goed gedaan wordt.
Robert_Deiman schreef op 15.11.2008 09:46:
@John
Het lidnummer is zeker opgeslagen in een varchar kolom? Als het namelijk een int is en je sorteert met SQL dan gaat het prima hoor.
wil je in de weergave dan toch een 4 cijferig nummer weergeven, gebruik dan voorloopnullen:
(800 is namelijk wel heel anders dan 8000, je kan daar (puur voor de weergave) wel 0800 van maken. Dat doe je met sprintf()
Het lidnummer is zeker opgeslagen in een varchar kolom? Als het namelijk een int is en je sorteert met SQL dan gaat het prima hoor.
wil je in de weergave dan toch een 4 cijferig nummer weergeven, gebruik dan voorloopnullen:
(800 is namelijk wel heel anders dan 8000, je kan daar (puur voor de weergave) wel 0800 van maken. Dat doe je met sprintf()
Ik heb geprobeert een INT daarvan te maken maar sommige nummer bevatten een # teken en daar kan INT niets mee.
Ik wil wel eens weten wat ik met 'sprintf()' kan.Heb gekeken hoe ik dat kan gebruiken maar vind het even niet.
Kun je me verder helpen?
Het gaat dus om een bestaande ledendatabase. Nieuwe leden krijgen al een groter nummer dan 1000 dus het gaat echt om de reeds bestaande leden.
John
John schreef op 15.11.2008 20:20:
sommige nummer bevatten een # teken
En hoe wil je daar dan op sorteren?
print str_pad($input, 10, "0", STR_PAD_LEFT); // produceert "00000Alien"