Getal op goede volgorde sorteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Mulder

Kees Mulder

08/01/2015 08:59:07
Quote Anchor link
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?
 
PHP hulp

PHP hulp

22/12/2024 07:59:48
 
Ivo P

Ivo P

08/01/2015 09:30:02
Quote Anchor link
SELECT bedrag
FROM tabel
ORDER BY bedrag ASC

dat zou het moeten sorteren...
 

08/01/2015 09:30:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$array
= array(1, 1120, 2, 23, 230, 3);
sort($array);
echo '<pre>';
print_r($array);
echo '</pre>';

?>
 
Kees Mulder

Kees Mulder

08/01/2015 10:16:50
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

08/01/2015 10:57:09
Quote Anchor link
Ik heb zelf geen ervaring met JSangular, maar mogelijk helpt dit?
http://stackoverflow.com/questions/19175054/angularjs-orderby-integer-field-not-working-properly
 
John D

John D

08/01/2015 16:10:25
Quote Anchor link
Ivo P op 08/01/2015 09:30:02:
SELECT bedrag
FROM tabel
ORDER BY bedrag ASC

dat zou het moeten sorteren...
Inderdaad maar hoogstwaarschijnlijk heeft TS geen numerieke velden maar char velden en die sorteren zoals hij beschrijft.
Gewijzigd op 08/01/2015 16:15:59 door John D
 
- Ariën  -
Beheerder

- Ariën -

08/01/2015 16:41:23
Quote Anchor link
John D op 08/01/2015 16:10:25:
Ivo P op 08/01/2015 09:30:02:
SELECT bedrag
FROM tabel
ORDER BY bedrag ASC

dat zou het moeten sorteren...
Inderdaad maar hoogstwaarschijnlijk heeft TS geen numerieke velden maar char velden en die sorteren zoals hij beschrijft.


Blijkbaar toch niet.
Quote:
Ik heb een tabel met daarin ook een bedrag (decimal 7,2).
 
John D

John D

08/01/2015 18:34:28
Quote Anchor link
- Aar - op 08/01/2015 16:41:23:
Blijkbaar toch niet.
=> Ik heb een tabel met daarin ook een bedrag (decimal 7,2).
@Aar Waaruit concludeer je dat, 7 komma 2 kan ook in een char veld staan.
Gewijzigd op 08/01/2015 18:34:49 door John D
 
- Ariën  -
Beheerder

- Ariën -

08/01/2015 18:37:40
Quote Anchor link
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 -
 
Kees Mulder

Kees Mulder

09/01/2015 09:28:55
Quote Anchor link
Klopt het veld is decimal 7,2. Dus weet alleen niet waar het nu aan kan liggen.
 
Tim S

Tim S

09/01/2015 09:39:25
Quote Anchor link
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.
 
Kees Mulder

Kees Mulder

09/01/2015 15:38:29
Quote Anchor link
Dat klopt denk ik wel... Is dat niet handig (google seo)?!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$arr = array();
if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $arr[] = $row;    
    }
}
# JSON-encode the response
$json_response = json_encode($arr);

// # Return the response
echo $json_response;
 
Tim S

Tim S

09/01/2015 16:05:06
Quote Anchor link
Je zou dan in dit geval dan in PHP of in angularJS de gebruikte variable moeten omzetten naar een float.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;


Ik vermoed dat het zo zou moeten werken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.