Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    ordinamento 'naturale' query

    Faccio una query:
    Codice PHP:
    $result mysql_query("SELECT * FROM `table` GROUP BY `field` ORDER `field` DESC");
    while (
    $row mysql_fetch_array($result)) {
    echo 
    "<option value=\"" $row["field"] . "\">non più di " $row["field"] . ".00 &euro;</option>";

    Nel database. come si capisce, sono registrati i valori come INT, quindi cose come 354, 792, 1026, etc
    Io vorrei che la select costruita con la query mi ordinasse i valori in modo discendente naturale, cioè (ad es.):
    1200
    874
    266
    125
    e non (come fa adesso):
    874
    266
    125
    1200
    Inoltre - se fosse possibile - vorrei poter arrotondare le cifre per eccesso, cioè, ad esempio, invece che 874 > 880.
    É possibile? O meglio, come posso ottenerlo?
    metatad
    graphic & web design

  2. #2
    ORDER by abs(field) DESC


    Si arrotondano i decimali in modo automatico non gli interi. Per fare questo devi fare una tua funzione poiche' nessuno puo' sapere a priori a quanto si deve arrotondare.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Thanx...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Per arrotondare in eccesso potresti usare la funzione truncate e aggiungere 10.

    es.

    select truncate(824,-1) + 10

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    É una funzione mysql? Come... funziona?!
    metatad
    graphic & web design

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da metatad
    É una funzione mysql? Come... funziona?!
    Sì, è una funzione di mysql. Semplicemente devi sostituire a 824 del mio esempio il nome del campo. A quanto ho capito vuoi arrotondare alla decina superiore tutti i valori. Nel caso voglia lasciare invariati i valori la cui ultima cifra è zero fai così

    codice:
    select *,if(substring(numero,-1)<>0,truncate(numero,-1) + 10,numero) as arrotonda
    from tabella

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ri-thanx!
    metatad
    graphic & web design

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Pensandoci meglio puoi ottenere lo stesso risultato anche così

    select ceil(numero/10) * 10


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.