Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Ordinamento

  1. #1

    Ordinamento

    Scusatemi io ho una strigna SQL che mi estrae i dati e li ordina in ordine alfabetico

    codice:
    SELECT * FROM nometabella ORDER BY FILE_NAME ASC
    ordina in maniera perfetta solo che vorrei capire bene come risolvere un problema

    estrae questo

    aba_01
    aba_04
    aba_02

    Come faccio a fargli ordinare il campo alfanumerico?
    Vorrei questo risultato:

    aba_01
    aba_02
    aba_04
    Ultima modifica di lorenzofranc; 25-03-2014 a 20:12
    eccomiiiiiiii

  2. #2
    sono riuscito a trovare una discussione dove viene consigliato di fare un array ed usare preg_replace().

    Benissimo ho creato l'array, l'ho portata fuori dal ciclo while, ho provato a stamparla (mi stampa tutto il suo contenuto)

    Codice PHP:

                                                              
    $var 
    mysql_query("SELECT * FROM nometabella");
    $dati=array();
    while (
    $row mysql_fetch_row($var)) {

    $dati[]=$row[2];

    }





    $conta count($dati);
    for(
    $i=0;$i<$conta;$i++){
    echo 
    $dati[$i]."<br>";


    la successiva domanda è: "Come ordino l'array alfanumerica?

    Secondo me non posso farlo
    Ultima modifica di lorenzofranc; 25-03-2014 a 22:37
    eccomiiiiiiii

  3. #3
    Quote Originariamente inviata da lorenzofranc Visualizza il messaggio
    Scusatemi io ho una strigna SQL che mi estrae i dati e li ordina in ordine alfabetico

    codice:
    SELECT * FROM nometabella ORDER BY FILE_NAME ASC
    ordina in maniera perfetta solo che vorrei capire bene come risolvere un problema

    estrae questo

    aba_01
    aba_04
    aba_02

    Come faccio a fargli ordinare il campo alfanumerico?
    Vorrei questo risultato:

    aba_01
    aba_02
    aba_04
    ma aba_qualcosa cos'è? il contenuto di FILE_NAME?

  4. #4
    Si è il contenuto di FILE_NAME
    eccomiiiiiiii

  5. #5
    quindi questa quesry

    SELECT * FROM nometabella ORDER BY FILE_NAME ASC

    dovrebbe essere già ok. Come visualizzi i dati?

  6. #6
    E' proprio quello che non mi torna, l'ho fatto e questo è il risultato

    aba_01
    aba_04
    aba_02

    io però vorrei ordinare anche i numeri dopo cioè

    aba_01
    aba_02
    aba_04
    eccomiiiiiiii

  7. #7
    Se inserisco altri valori e poi li estraggo ho questo

    au2
    au2200
    au3

    Perché? La logica dovrebbe essere un'altra e cioè:
    au2
    au3
    au2200
    eccomiiiiiiii

  8. #8
    Ok mi arrendo lo ordino così, lo so che ASC va bene e che ordina leggendo lettera per lettera e numero per numero e che quindi
    a2200 viene prima di a3 perchè la seconda cifra è rispettivamente 2 e 3, ma ero curioso di capire se era possibile ordinarli in modo che il numero più grande fosse dopo.

    Grazie lo stesso
    eccomiiiiiiii

  9. #9
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da lorenzofranc Visualizza il messaggio
    ...... ma ero curioso di capire se era possibile ordinarli in modo che il numero più grande fosse dopo......
    Lavori di stringa e usi le varie funzioni Convert in modo da convertire la parte di testo composta da cifre in numero

    piu o meno cosi ( in funzione del tuo linguaggio )
    ORDER BY Left(Campo,4) + Convert(Int, (Mid(Campo,5,2)) )





    Certo che mi suona strano che ti restituisca questo se messo semplicemente in ordine alfabetico ???
    Mi sa che hai dentro qualche carattere speciale nel nome che non riesci a vedere
    aba_01
    aba_04
    aba_02



    Ultima modifica di nman; 26-03-2014 a 05:28

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 © 2026 vBulletin Solutions, Inc. All rights reserved.