Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    31

    ORDER by con numeri decimali.

    Ciao a tutti,

    ho una domanda sono giorni che perchè non riesco a capire il motivo che la query mi raccoglie in modo errato il dati contenuti in un campo "esperienza".

    In esperienza ho dei umeri decimali come:

    es.

    4.56
    89.40
    ect ect ect

    volevo creare una lista che mi metesse in ordine questi campi

    <?
    $MySql = "SELECT * FROM user WHERE esperienza > 0";
    $MySql .= " ORDER BY carisma DESC LIMIT 0, 20";
    $Result = mysql_query($MySql);
    while ($rs = mysql_fetch_array($Result)) {
    $nome_car=htmlspecialchars($rs['nome']);
    $carisma=htmlspecialchars($rs['carisma']);
    echo"<tr>";
    echo"<td>$nome_car";
    echo"<td>$carisma";
    echo"</tr>";
    }
    $rs->close;
    mysql_free_result($Result);
    ?>

    Utilizzando questa query li ordina in modo errato..esempio

    utente1 9.49
    utente2 86.3
    utente3 81.3
    utente4 8.93

    c'è un modo per ordinarli correttamente?

    Vi ringrazio

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Evidentemente hai usato un campo varchar anzichè decimal e quindi ti vengono ordinati come stringhe.


    SELECT * FROM user WHERE esperienza > 0 ORDER BY cast(carisma as unsigned) DESC LIMIT 0,20

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    31
    Ciao,

    ti ringrazio per avermi risposto.

    Allora scusami ma nel codie che ti ho copiato c'è qualche errore che ho sbagliao striga..comuqnue il problema è quello il fatto che nel campo esperienza è varchar invece di decimal, si può inserire qualcosa nella query per evitare il rpoblema? o devo cambiare il campo?

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    o cambi in decimal il var char

    o dici di trattarlo come decimal

    ORDER BY CAST(tuocampo AS decimale);

    o

    ORDER BY tuocampo + 0;



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.