Innanzitutto vi ringrazio per le risposte

@diabolikk: non ho ancora provato ad applicare i concetti che mi hai detto perché fondamentalmente sono gli stessi che ho usato già... però effettivamente quello di confrontare le regioni pare l'unico metodo efficace... forse mi conviene rifletterci un attimo e pulire un po' il codice!

@alfonso534791: grazie alfo, il tuo codice è sicuramente più comprensibile del mio! Però ho dei dubbi sulle prestazioni... ho fatto alcune prove riadattando lo script e ci sono un po' di problemi...

questo è il tuo script leggermente modificato

Codice PHP:
<?php
    
include "connessione.php";
    
    
$contatore_query 0;
    
    
$sql1=mysql_query("
    SELECT denominazione_regione
    FROM regioni_province
    GROUP BY denominazione_regione;"
$connessione);
    if (!
$sql1) {
        echo 
"Query1 non riuscita";
    }
    else { 
$contatore_query++; }
    
    while ( 
$a mysql_fetch_array($sql1) )
    {
        echo 
"
"
.$a[0]."
"
;
        
        
$sql2=mysql_query("
        SELECT denominazione_provincia
        FROM regioni_province
        WHERE denominazione_regione='
$a[0]'"$connessione);
        if (!
$sql2) {
            echo 
"Query2 non riuscita";
        }
        else { 
$contatore_query++; }        
        
        
$counter 0;
        while ( 
$counter mysql_num_rows($sql2) )
        {
            
$b mysql_fetch_array($sql2);
            echo 
$b[0]."
"
;
            
$counter++;
        }
    }
    
    echo 
"

Totale query eseguite: "
.$contatore_query;
?>
e questo è l'output:

codice:
ABRUZZO
L'Aquila
Teramo
Pescara
Chieti

BASILICATA
Potenza
Matera

CALABRIA
Cosenza
Catanzaro
Reggio di Calabria
Crotone
Vibo Valentia

CAMPANIA
Caserta
Benevento
Napoli
Avellino
Salerno

EMILIA-ROMAGNA
Piacenza
Parma
Reggio nell'Emilia
Modena
Bologna
Ferrara
Ravenna
Forlì-Cesena
Rimini

FRIULI-VENEZIA GIULIA
Udine
Gorizia
Trieste
Pordenone

LAZIO
Viterbo
Rieti
Roma
Latina
Frosinone

LIGURIA
Imperia
Savona
Genova
La Spezia

LOMBARDIA
Varese
Como
Sondrio
Milano
Bergamo
Brescia
Pavia
Cremona
Mantova
Lecco
Lodi
Monza e della Brianza

MARCHE
Pesaro e Urbino
Ancona
Macerata
Ascoli Piceno
Fermo

MOLISE
Campobasso
Isernia

PIEMONTE
Torino
Vercelli
Novara
Cuneo
Asti
Alessandria
Biella
Verbano-Cusio-Ossola

PUGLIA
Foggia
Bari
Taranto
Brindisi
Lecce
Barletta-Andria-Trani

SARDEGNA
Sassari
Nuoro
Cagliari
Oristano
Olbia-Tempio
Ogliastra
Medio Campidano
Carbonia-Iglesias

SICILIA
Trapani
Palermo
Messina
Agrigento
Caltanissetta
Enna
Catania
Ragusa
Siracusa

TOSCANA
Massa-Carrara
Lucca
Pistoia
Firenze
Livorno
Pisa
Arezzo
Siena
Grosseto
Prato

TRENTINO-ALTO ADIGE
Bolzano
Trento

UMBRIA
Perugia
Terni

VALLE D'AOSTA
Query2 non riuscita
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in *** on line 29

VENETO
Verona
Vicenza
Belluno
Treviso
Venezia
Padova
Rovigo


Totale query eseguite: 20
Tutto ok tranne per la Valle d'Aosta (la query fallisce perché c'è l'apice sulla regione). Se contiamo pure la query fallita in totale sarebbero 21, contro la mia che è 1 soltanto... insomma non mi sembra una buona idea inserire una seconda query nel ciclo.

Ora provo a sistemare un po' lo script, più tardi casomai lo posto di nuovo... intanto se avete in mente altre soluzioni scrivetele pure