Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ordinare cifre in database

    Non capisco come sia possibile.
    Se estraggo dal database MySql una serie di numeri formattati separando i decimali con un punto, l'ordinamento non funziona.

    Ecco come vengono ordinati da phpMyAdmin, con questa query

    SELECT *
    FROM `sito_prodotti`
    ORDER BY `prezzofinale` DESC
    LIMIT 0 , 30

    [list=1][*]353189.82[*]327.5[*]30.90[*]3.45 [*]20.70[*]10.78[/list=1]

    Se davanti al 3.45 metto uno zero (03.45) l'ordinamento è corretto.
    Il tipo di campo è varchar(14)

  2. #2
    Non sono numeri, sono stringhe e vengono ordinate come tali.

  3. #3
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    filippo.toso ha ragione: essendo stringhe vengono ordinate come tali... però

    la funzione natcasesort, applicata all'array contenente il risultato della tua query, può fare al caso tuo

    http://it2.php.net/manual/it/function.natcasesort.php
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  4. #4

    Re: Ordinare cifre in database

    Puo ottenere lo stesso risultato direttamente in MySQL utilizzando questa query:

    Codice PHP:
    SELECT *
    FROM `sito_prodotti`
    ORDER BY `prezzofinale` + 0 DESC
    LIMIT 0 
    30 

  5. #5
    Grazie a tutti per l'aiuto. Mi sono perso in un bicchiere d'acqua.
    Ho risolto modificando i campi del database da char a Int.

  6. #6
    Visto il tipo di dati non era meglio un FLOAT o DOUBLE?

  7. #7
    Originariamente inviato da filippo.toso
    Visto il tipo di dati non era meglio un FLOAT o DOUBLE?
    Infatti.
    Int non salva i decimali!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.