Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126

    Query secondo ordine numerico

    Salve gente...come potete vedere dal codice che segue, effettuo una normale query e chiedo che i risultato vengano ordinato per MACROSETTORI.
    Nel DB i MACROSETTORI sono semplicemente dei numeri; nell'ordinare i dati nessun problema fin uqando il MACROSETTORE non è il 10 che vine posto in testa all'elenco e non dopo il 9.
    Come posso ovviare a questo problemino estetico?
    GRAZIE


    Codice PHP:
    <?php
    define
    ("DB_HOST"'localhost'); 
    define("DB"'******');
    define("DB_USER",  '******');
    define("DB_PW",  '******');

    mysql_connect(DB_HOSTDB_USERDB_PW);
    mysql_select_db(DB);

    $query="select * from albo order by Macrosettore";
    $resultmysql_query($query);
    $numfields mysql_num_fields($result);

    echo 
    "<table width=450 border=0 cellspacing=3 cellpadding=5 align=center>\n<tr>";
    for (
    $i=0$i $numfields$i++) 
      { 
       echo 
    '<th bgcolor=#CCCCCC class=verdana_grassetto_nero width=120>'.mysql_field_name($result$i).'</th>'
       }
       echo 
    "</tr>\n";
      
       while (
    $row mysql_fetch_row($result)) 
      { 
       echo 
    '<tr bgcolor=#EFEFEF class=verdana_nero width=120><td>'.implode($row,'</td><td>')."</td></tr>\n"
      }
    echo 
    "</table>\n";
      
    ?>

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    evidentemente MACROSETTORE è un campo varchar o char
    ...altri 5 anni di purga...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    E' un varchar poichè la definizione del Macrosettore esatta è B(numero)

    Che tipologia dovrei assegnargli in questo caso?

  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    sinceramente non capisco:
    cosa significa B(numero)?
    ...altri 5 anni di purga...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    Nel senso che le Macrocategorie possono essere:

    B1
    B2
    B3
    B4
    etc...fino a 12

  6. #6
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    Le cose sono 2:
    o non metti la B e trasformi il campo in int,
    oppure crei un nuovo campo numerico e ci metti il numero senza la B.
    ...altri 5 anni di purga...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    Uhm...uniche due soluzioni?

  8. #8
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    SELECT substring(MACROSETTORE,2) AS intM
    FROM
    tale
    ORDER BY CAST( intM AS unsigned integer );
    ...altri 5 anni di purga...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    126
    Originariamente inviato da alpeweb
    SELECT substring(MACROSETTORE,2) AS intM
    FROM
    tale
    ORDER BY CAST( intM AS SIGNED );
    Questo sempre dopo aver diviso il Macrosettore in due campi: uno varchar e uno int...giusto?

  10. #10
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    NO.

    funziona anche senza.
    basta che metti l'order in questo modo:

    ORDER BY CAST(substring(MACROCATEGORIA, 2) AS unsigned integer );
    ...altri 5 anni di purga...

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.