Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    Ordine query di più campi

    Ciao ragazzi ho una tabella con diversi campi e ho fatto una query per ordinare la visualizzzione di ordine crescente
    Codice PHP:
    $sql "SELECT * FROM clienti ORDER BY cognome ASC"
    E' possibile ordinare la tabella con 2 campi, cioò oltre al cognome anche la ragione sociale?
    Ho provato così
    Codice PHP:
    $sql "SELECT * FROM clienti ORDER BY cognome ASC, ragione_sociale ASC"
    Ma nella visualizzazione prima mi appaiono tuitte le ragiooni sociali in ordine crescente e poi i cognomi

    SI può fare cio?

    Io vorrei che appaiono per sempio
    Rossi Marco
    RosssCorporation
    Russo ...
    TSOCIETY
    ...
    ..

  2. #2
    Scusa ma se ogni cognome ha associata la ragione sociale ti basta mettere order by cognomi.
    E' nel ciclo che mostra i risultati che devi tirare fuori il cognome e la ragione sociale associata ad esso.
    Posta il codice che stampa il risultato della query nella tua pagina che vediamo cosa si può fare.

  3. #3
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    No ad ogni ragione sociale non è associato un cognome, altrimenti non avrei scritto questo post
    Si tratta di una tabella anagrafica dove ci sono sia privati (nome-cognome etc) che aziende (ragione sociale )
    Quindi solo 1 campo tra nome e rag soc sarà compilato.

  4. #4
    Si ma se tu hai una tabella con i campi:
    Nome
    Cognome
    Ragione sociale

    Anche se il campo Ragione sociale è vuoto, è comunque legato ai campi nome e cognome...
    Secondo me non è questione di order by, ma bensì alternare le righe trovate a seconda se hanno inseriti cognome e nome oppure la ragione sociale...

  5. #5
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Forse non mi sono spiegato
    Ho la tabella ANAGRAFICA con questa struttura molto semplice
    ID | COGNOME | NOME | RAGIONE SOCIALE |

    Ammettiano che nella tabella ho questi dati
    ID | COGNOME | NOME | RAGIONE SOCIALE |
    1 Rossi Marco
    2 Bianchi Luigi
    3 Ri SPA
    4 AA SPA

    Ora io vorrei ordinare in ordile alfabateco ascendente questi dati in questo modo
    1 - AA SPA
    2 - Bianchi
    3 - RI SPA
    4 - Rosso

    Se faccio la query
    $sql = "SELECT * FROM clienti ORDER BY cognome ASC";
    mi omette la ragione sociale
    Come posso risolvere?

  6. #6
    è impossibile che ti omette la ragione sociale se metti SELECT * FROM poichè l' asterisco serve proprio per indicare tutti i campi. Ma se non posti il codice è più difficile trovare il problema.

  7. #7
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Non mi omette nulla, nel senso che la ragione sociale appare, ma poichè il cognome è vuoto esso viene visto il primo di tutto e quindi non ho più una lista in ordine alfabetico

    Praticamente ho questo risultato
    4 - AA SPA
    3 - RI SPA
    2 - Bianchi
    1 - Rosso

    Secondo te questi sono in ordine alfabetico? No e quindi il problema è questo

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    non so se ho capito, ma potresti usare
    codice:
    select * from
    (select 1 as numero,* from clienti where ragionesociale=null
    union
    select 2 as numero,* from clienti where ragionesociale<>null
    ) a
    order by a.numero, a.cognome, a.nome, a.ragionesociale

    in questo modo hai prima i clienti e poi le aziende
    altrimenti se vuoi diversamente usa la tecnica del numero per avere un campo che contenga cognome o ragione sociale
    tipo : select cognome as numero ..... select rag.. as numero ....
    Ultima modifica di marino51; 23-01-2015 a 14:40

  9. #9
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Non capisco ho provato questo codice e non va, non visualizzo nulla
    Codice PHP:
    $sql="SELECT * from (select 1 as numero,* from clienti WHERE ragione_sociale=null union
    select 2 as numero,* from clienti where ragionesociale<>null
    ) clienti
    order by clienti.numero, clienti.cognome, clienti.nome,clienti.ragione_sociale"


    poi non capisco questo testo
    "select cognome as numero ..... select rag.. as numero ...."

    Attendo rispotsa grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    io non ho messo "clienti", ho messo "a"
    prova a capire ....

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.