Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Ordine sballato

  1. #1

    Ordine sballato

    Salve a tutti, nel mio sito c'è una sezione in cui vengono mostrati dei valori estratti da un DB. Questi valori sono ordinati in base al numero contenuto in uno dei campi, dal più piccolo al più grande. Il problema è che succede qualcosa tipo questo nell'ordine: 1, 100, 2, 3, 332, 4, ecc.
    In poche parole sembra che tenga conto solo del primo valore.
    Ecco la query usata:
    Codice PHP:
    SELECT idtrenocategoriapartenzaarrivo FROM composizioni ORDER BY treno ASC 
    Potete vedere la pagina qui: http://www.pikkioweb.net/composizioni/visualizza.php
    Come posso risolvere il problema? Grazie mille.
    Andrea

  2. #2
    A colpo d'occhio sembra un ordinamento alfanumerico.

    Se il campo treno è alfanumerico e vuoi l'ordinamento corretto i valori dovrebbero essere

    001
    002
    003
    004
    100
    332

    "..desidero mettere l'accento sul fatto che il cambiamento dalla teoria autoritaristica della conoscenza scientifica alla teoria critica o antiautoritaristica della conoscenza scientifica, è molto recente.."

  3. #3
    Effettivamente alcuni record in quel campo, dopo il numero, hanno anche delle lettere.

  4. #4
    Il problema è che i numeri dovrebbero essere così come sono e dato che i dati li inseriscono gli utenti non posso obbligarli a mettere gli zeri. Non c'è un altro sistema (magari eliminando le lettere da quel campo)?

  5. #5
    Anche togliendo le lettere il campo rimane alfanumerico (a meno di non ricreare il DB).

    L'unica soluzione che mi viene in mente è quella di "normalizzare" il campo
    ad una lunghezza fissa, allineando tutto a destra, inserendo dei caratteri neutri.
    Se non ti piace lo 0 puoi semre usare il carattere spazio.
    "..desidero mettere l'accento sul fatto che il cambiamento dalla teoria autoritaristica della conoscenza scientifica alla teoria critica o antiautoritaristica della conoscenza scientifica, è molto recente.."

  6. #6
    Come si fa a "normalizzare" il campo?

  7. #7
    Be "normalizzare" è un termine improprio.

    Intendevo questo:
    -definisci a priori la lunghezza del campo, metti 10 caratteri
    -calcoli quanti caratteri ti ha digitato l'utente
    -inserisci in testa al campo tanti caratteri neutri (0 o spazio) sino a
    portare la lunghezza del campo a 10
    -memorizzi sul database il campo cosi ricavato
    -ordinando la select sul campo questo viene ordinato correttamente
    -in visaulizzazione elimini i caratteri neutri e l'utente vede solo quello che ha digitato

    es:
    -definisci il campo lungo 5
    - l'utente ti scrive
    10
    2
    23
    45
    3
    - tu memorizzi
    00010
    00002
    00023
    00045
    00003
    - la select ti restituisce la lista
    00002
    00003
    00010
    00023
    00045
    - tu mostri a video
    2
    3
    10
    23
    45
    "..desidero mettere l'accento sul fatto che il cambiamento dalla teoria autoritaristica della conoscenza scientifica alla teoria critica o antiautoritaristica della conoscenza scientifica, è molto recente.."

  8. #8
    Ho capito! Grazie!
    Vedrò cosa posso fare!
    Ciao!!!

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    SELECT id, treno, categoria, partenza, arrivo FROM composizioni
    ORDER BY
    cast(treno as unsigned)

  10. #10
    Originariamente inviato da nicola75ss
    SELECT id, treno, categoria, partenza, arrivo FROM composizioni
    ORDER BY
    cast(treno as unsigned)
    Ciao, ho provato ma mi da un errore. Sei sicuro che il codice sia corretto?

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.