Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 41
  1. #1

    Query ordinata per nome e divisa a gruppi per iniziale di lettera, Come fare?

    Salve, ho un database con i nome di citta, dovrei farli visualizzare orinati per nome, e fin qui ci sono solo che oltre a questo devono essere raggruppati per gurppo, tipo tutti quelli che iniziano con a, poi b , ecc

    Ecco la mia query
    Codice PHP:

    <?php
    $comune_1 
    mysql_query("SELECT id,nome FROM comuni WHERE province_id=\"$provincia\" Order BY nome ") or die(mysql_error()); 

    <
    table width="645" border="0" align="left">
      <
    tr>

    while(
    $comune mysql_fetch_array($comune_1)){
    echo 
    '<td>[url="gestione.php?page=4&amp;verifica=1&amp;provincia='.$provincia.'&amp;comune='.$comune['id'].'"]'.$comune['nome'].'[/url]</td>';
    // visualizza tre nomi per riga
    $nr++; if($nr == 3){echo '</tr><tr>';$nr=0;} 
    }if(
    $nr !=0){echo '</tr>';;}
    echo 
    '</table>';
    ?>

  2. #2
    Uhmm
    non l'ho provata
    codice:
    select substr(campo,1,1) as lettera, from tabella group by substr(campo,1,1)
    Tanto...lo fanno tutti... posso farlo anche io vero?

  3. #3
    Si fa un group by per le prime lettere del campo (ch è quello che chiedeva) ovviamente il mio era uno spunto su come estrarre in query la prima lettera di una stringa di un campo...poi la cosa va elaborata per come la chiede lui, ma si può fare tutto in una query invece che mettere mano al ciclo.

    subquery o union etc.... dipende che dimestichezza ha il nostro amico con le query...
    Tanto...lo fanno tutti... posso farlo anche io vero?

  4. #4
    proprio cosi, ma non sono riuscito a farlo.
    vorrei fare cosi:

    A
    ancona arezzo

    b

    bologna bari

    d
    ecc ecc

  5. #5
    Bene allora la mia query ti servirà per quello scopo estraendo per cui le varie lettere
    puoi fare una query annidata nel cliclo invece che una subquery
    confrontando il valore della seconda con l'estrazione della prima
    Tanto...lo fanno tutti... posso farlo anche io vero?

  6. #6
    pro a buttare giu un po di codice e vediamo che mi esce, anche se non ho capito molto come fare

  7. #7
    come faccio a verificare ad ogni ciclo se l'iniziale del comune è uguale a quella del comune precedente?


    Originariamente inviato da raven74
    con questa query ottieni semplicemente l'alfabeto

    Invece se ho capito bene tu vuoi che ad ogni cambio di iniziale la tabella si interrompa

    in genere è sufficiente con PHP verificare ad ogni ciclo se l'iniziale del comune è uguale a quella del comune precedente. Se sono diverse fai fare allo script quello che deve fare (riga vuota nella tabella, un anchor, un titolo...)

  8. #8
    fai questo
    codice:
    $sql = mysql_query("select substr(nome_provincia,1,1) as lettera from anagrafica_province2012 group by substr(nome_provincia,1,1)");
    while($row = mysql_fetch_array($sql)){
    
    
    select * from anagrafica_province2012 WHERE substr(nome_provincia,1,1) = '$row[lettera]';
    fai un while a queto punto e ti trovi quel che cerchi....
    
    
    }
    spè che te la scrivo meglio
    Tanto...lo fanno tutti... posso farlo anche io vero?

  9. #9
    ok questa la query
    come sopra ma scritta meglio

    codice:
    <?php
    
    $sql = mysql_query("select substr(nome_provincia,1,1) as lettera from anagrafica_province2012 group by substr(nome_provincia,1,1)");
    while($row = mysql_fetch_array($sql)){
    
    	echo ''.$row['lettera'].'
    ';
    
    	$sqlProvince = mysql_query("select * from anagrafica_province2012 WHERE substr(nome_provincia,1,1) = '$row[lettera]'");
    	while($rowProvince = mysql_fetch_array($sqlProvince)){
    	echo $rowProvince['nome_provincia'].'
    ';
    	}
    
    
    }
    ?>

    questo il risultato

    codice:
    A
    Avellino
    Ancona
    Ascoli Piceno
    Alessandria
    Asti
    Agrigento
    Arezzo
    B
    Benevento
    Bologna
    Bergamo
    Brescia
    Biella
    Bari
    Barletta-Andria-Trani
    Brindisi
    Bolzano/Bozen
    Belluno
    C
    Chieti
    Catanzaro
    Cosenza
    Crotone
    Caserta
    Como
    Cremona
    Campobasso
    Cuneo
    Cagliari
    Carbonia-Iglesias
    Caltanissetta
    Catania
    E
    Enna
    F
    Ferrara
    Forl-Cesena
    Frosinone
    Fermo
    Foggia
    Firenze
    G
    Gorizia
    Genova
    Grosseto
    I
    Imperia
    Isernia
    L
    L'Aquila
    Latina
    La Spezia
    Lecco
    Lodi
    Lecce
    Livorno
    Lucca
    M
    Matera
    Modena
    Mantova
    Milano
    Monza e della Brianza
    Macerata
    Medio Campidano
    Messina
    Massa-Carrara
    N
    Napoli
    Novara
    Nuoro
    O
    Ogliastra
    Olbia-Tempio
    Oristano
    P
    Pescara
    Potenza
    Parma
    Piacenza
    Pordenone
    Pavia
    Pesaro e Urbino
    Palermo
    Pisa
    Pistoia
    Prato
    Perugia
    Padova
    R
    Reggio di Calabria
    Ravenna
    Reggio nell'Emilia
    Rimini
    Rieti
    Roma
    Ragusa
    Rovigo
    S
    Salerno
    Savona
    Sondrio
    Sassari
    Siracusa
    Siena
    T
    Teramo
    Trieste
    Torino
    Taranto
    Trapani
    Trento
    Terni
    Treviso
    U
    Udine
    V
    Vibo Valentia
    Viterbo
    Varese
    Verbano-Cusio-Ossola
    Vercelli
    Valle d'Aosta
    Venezia
    Verona
    Vicenza

    ora adatta i campi e l'output a quel che ti serve !!!

    lascia perdere il verificare il record precedente e variabili da memorizzare che caricano il server senza motivo !! oltre che renderti la vita complicata

    Tanto...lo fanno tutti... posso farlo anche io vero?

  10. #10
    Grazie, ora funziona.
    ora vedo di far in modo di stampare i nomi dentro una tabelle a tre colonne, vediamo che mi esce
    Grazie di nuovo

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.