intendevo così:
ho fatto una prova con una mia tabella e mi ha dato l'output giusto. Una sola query, codice veloceCodice PHP:<?php
// così la prima regione è l'Abruzzo
$sql1=mysql_query("
SELECT *
FROM regioni_province
ORDER BY denominazione_regione ASC;");
$conf = "Abruzzo";
// apro la select ed il primo optgroup
echo '<select name="provincia">';
echo '<option value="0" disabled="disabled">Seleziona una provincia</option>';
echo '<optgroup label="Abruzzo">';
while ($r= mysql_fetch_array($sql1)) {
$regione = $r["denominazione_regione"];
// controllo che se regione è diverso al valore di confronto.
if ($regione!=$conf) {
echo '</optgroup><optgroup label="'.$r["denominazione_regione"].'">';
}
echo "<option value='" .$r["denominazione_provincia"] . "'>" .$r["denominazione_provincia"] . "</option>";
// aggiorno il valore di confronto per il prossimo ciclo
$conf = $r["ripartizione_geografica"];
}
// a fine ciclo chiudo l'ultimo optgroup e la select
echo "</optgroup></select>";
?>![]()
ho cercato di rimettere i tuoi nomi di variabili, colonne e tabelle, non so se mi è sfuggito qualcosa![]()

Rispondi quotando