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

    Problema con "ORDER BY"

    Ciao,

    ho la seguenta variabile:

    Codice PHP:
    $sqlquery "SELECT * FROM tabella ORDER BY prezzo DESC"
    volevo sapere xkè il prezzo 110 € me lo mette per ultimo anzichè x primo essendo quello più alto. I valori che devo ordinare sono 10 €, 20 €, 30 € ecc fino ad arrivare a 110 €.

    Invece li ordina in questo modo:

    30 €
    20€
    10€
    110 €

    ho pensato che potrebbe riconoscere solo le prime 2 cifre e quindi 110 lo vede come 11...un aiuto?

  2. #2
    Perchè il tuo campo prezzo è dichiarato come varchar e NON come numerico.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    assicurati che il campo del db contenente il prezzo sia numerico.
    dovresti non utilizzare ¬ nel dm ma solo nella pagina, per poter lavorare meglio
    I Love Paris...

  4. #4
    ma il campo prezzo non deve essere per forza numerico, un utente ci può anche scrivere "non dichiarato" e a quel punto se il campo è numerico non me lo legge

  5. #5
    non dichiarato lo metti come zero, e in pagina lo zero lo trasformi in "non dichiarato"
    I Love Paris...

  6. #6
    Originariamente inviato da rikardinho90
    ma il campo prezzo non deve essere per forza numerico, un utente ci può anche scrivere "non dichiarato" e a quel punto se il campo è numerico non me lo legge
    La progettazione dei DB...questa sconosciuta! Un campo prezzo DEVE essere numerico almeno per coerenza.
    Premesso ciò, fai così:

    Codice PHP:
    $sqlquery "SELECT * FROM tabella ORDER BY CAST(prezzo AS UNSIGNED) DESC"
    function CAST()
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.