login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Order by Prijs

Offline kenzo - 14/06/2008 10:54
Avatar van kenzoPHP beginner Hallo,

Ik heb voor een winkelwagen systeem order by prijs gebruikt voor het sorteren van producten op prijs.


Nu is is het zo dat bijna alle prijzen goed gerangschikt zijn.


Als ik de volgende prijzen heb doet hij het goed:

591,-
591.50
699,-
999,-


Als er nu een prijs boven de 1000,- komt zet hij hem ineens helemaal bovenaan.

Weet iemand hoe dat kan?

Bedankt

PS:
Dit is de code:
  1. $sQueryLid = "SELECT * FROM `cms_producten` WHERE categorie='".$_GET['cat']."' AND soort='".$_GET['soort']."' ORDER BY `prijs` ASC LIMIT ".$navigatie."";

4 antwoorden

Gesponsorde links
Offline ArComAr - 14/06/2008 11:05 (laatste wijziging 14/06/2008 11:08)
Avatar van ArComAr VB.NET gevorderde Waarschijnlijk staat je veld "prijs" als een string. de eerste karakters worden dan vergeleken en dan zie je dit staan volgens uw voorbeeld:

1 -> van 1000
5
5
6
9

Dit komt doordat in de ASCII tabellen het getal 1 een lagere ASCII waarde heeft dan de andere getallen.

Dus het sorteren wordt goed uitgevoerd. Beste is van je veld op double te zetten.
Offline jc2 - 14/06/2008 11:11 (laatste wijziging 14/06/2008 11:13)
Avatar van jc2 PHP interesse Ik weet zogauw niet hoe het op te lossen is, maar ik heb ook ooit zo'n probleem gehad.
Ik had bijv. deze getallen:
-----
1
2
3
5
11
24
152
-----

Ik kreeg toen het volgende rijtje:
------
1
11
152
2
24
3
5
------

Volgens mij heeft dat ermee te maken dat hij de getallen als strings benadert en niet als getallen.

Veel succes met het vinden van een oplossing.
Mij is het ooit ook gelukt. Ik zal nog even verder zoeken.

Edit:
Ik ben al te laat, ArComAr is mij blijkbaar al voorgeweest.
Offline kenzo - 14/06/2008 11:20
Avatar van kenzo PHP beginner ik kan de database niet meer op double zetten omdat er al waardes in staan denk ik.

Ik krijg een fout...

Denk dat ik iets anders moet zoeken


toch bedankt!
Offline ArComAr - 14/06/2008 11:33
Avatar van ArComAr VB.NET gevorderde je kan dat normaal wel nog doen, of je gegevens gaan bewaard blijven is iets anders. als er strings in je tabel staan die niet kunnen worden omgezet, dan zullen deze gegevens verloren gaan.

met een SQL commando als dit kan je normaal het type in je kolom aanpassen
  1. ALTER TABLE `tbl_boeken` CHANGE `prijs` `prijs` DOUBLE( 7, 2 ) NULL DEFAULT NULL


maar uiteraard is het eerder aan te raden om dit te doen via de phpMyAdmin console.

Maak eventueel een backup van je tabel, zo heb je nog steeds je gegevens in geval het moest mislopen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s