Getal op goede volgorde sorteren
Ik heb een tabel met daarin ook een bedrag (decimal 7,2). Als ik deze sorteren op het scherm krijg ik:
1
1120
2
23
230
3
Maar ik wil
1
2
3
23
230
1120
Hoe krijg ik dat voor elkaar?
1
1120
2
23
230
3
Maar ik wil
1
2
3
23
230
1120
Hoe krijg ik dat voor elkaar?
SELECT bedrag
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
Dat dacht ik ook maar dat werkt niet. Ik denk dat het komt omdat het script anders in elkaar zit. Het werkt deels met AngularJS: http://www.angularcode.com/angularjs-datagrid-paging-sorting-filter-using-php-and-mysql/
Maar waar zou ik dat dan moeten aanpassen?
Maar waar zou ik dat dan moeten aanpassen?
Ik heb zelf geen ervaring met JSangular, maar mogelijk helpt dit?
http://stackoverflow.com/questions/19175054/angularjs-orderby-integer-field-not-working-properly
http://stackoverflow.com/questions/19175054/angularjs-orderby-integer-field-not-working-properly
Ivo P op 08/01/2015 09:30:02:
Inderdaad maar hoogstwaarschijnlijk heeft TS geen numerieke velden maar char velden en die sorteren zoals hij beschrijft.SELECT bedrag
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
Gewijzigd op 08/01/2015 16:15:59 door John D
John D op 08/01/2015 16:10:25:
Ivo P op 08/01/2015 09:30:02:
Inderdaad maar hoogstwaarschijnlijk heeft TS geen numerieke velden maar char velden en die sorteren zoals hij beschrijft.SELECT bedrag
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
FROM tabel
ORDER BY bedrag ASC
dat zou het moeten sorteren...
Blijkbaar toch niet.
Quote:
Ik heb een tabel met daarin ook een bedrag (decimal 7,2).
- Aar - op 08/01/2015 16:41:23:
@Aar Waaruit concludeer je dat, 7 komma 2 kan ook in een char veld staan.Blijkbaar toch niet.
=> Ik heb een tabel met daarin ook een bedrag (decimal 7,2).
=> Ik heb een tabel met daarin ook een bedrag (decimal 7,2).
Gewijzigd op 08/01/2015 18:34:49 door John D
Decimal is ook een bestaande type. Dus ik ga er niet vanuit dat hij opeens VARCHAR zal gebruiken.
Gewijzigd op 08/01/2015 18:37:59 door - Ariën -
Klopt het veld is decimal 7,2. Dus weet alleen niet waar het nu aan kan liggen.
Omdat je zegt dat je met angularjs werkt, haal je de gegevens dan op als JSON?
Want het lijkt erop dat ze worden ingelezen als string.
Misschien dat je ze nog even handmatig moet omzetten naar een int of float.
Want het lijkt erop dat ze worden ingelezen als string.
Misschien dat je ze nog even handmatig moet omzetten naar een int of float.
Dat klopt denk ik wel... Is dat niet handig (google seo)?!
Je zou dan in dit geval dan in PHP of in angularJS de gebruikte variable moeten omzetten naar een float.
Ik vermoed dat het zo zou moeten werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$arr = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if(key_exists('betreffende_column', $row))
$arr[] = (float) $row;
else
$arr[] = $row;
}
}
# JSON-encode the response
$json_response = json_encode($arr);
// # Return the response
echo $json_response;
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if(key_exists('betreffende_column', $row))
$arr[] = (float) $row;
else
$arr[] = $row;
}
}
# JSON-encode the response
$json_response = json_encode($arr);
// # Return the response
echo $json_response;
Ik vermoed dat het zo zou moeten werken.




