beh, la cosa la puoi fare così (come faccio sempre io): nel primo menù prendi tutte le categorie presenti nel db, e nel secondo tramite un'altra query prendi solo le sottocategorie appartenenti alla categoria selezionata; per fare questo io uso due tabelle, una per la categorie (id_categoria, tipo_categoria) e una per le gruppo(id_gruppo, tipo_gruppo, id_categoria), e per realizzarlo è un misto di php, sql e js.
Menù per le categorie:
codice:
<select name="categoria" onChange="inviaCambiamenti()">
<?
query="SELECT * FROM categoria order by 'tipo_categoria'";
$result = mysql_query($query);
echo "<option value=\"\">Seleziona</option>";
while($row = mysql_fetch_assoc($result))
{
if(!empty($categoria))
{
if ($row[id_categoria]<>$categoria)
{
echo '<option value="'.$row[id_categoria].'" >'.$row[tipo_categoria].'</option>';
}
else
{
echo '<option value="'.$row[id_categoria].'" SELECTED>'.$row[tipo_categoria].'</option>';
}
}
else
{
echo '<option value="'.$row[id_categoria].'">'.$row[tipo_categoria].'</option>';
}
}
?>
</select>
Menù per le sottocategorie:
codice:
<select name="gruppo">
<?
$query="SELECT * FROM gruppo WHERE id_categoria='$categoria' order by 'tipo_gruppo'";
$result = mysql_query($query);
echo "<option value=\"\">Seleziona</option>";
while($row = mysql_fetch_assoc($result))
{
if(!empty($gruppo))
{
if ($row[id_gruppo]<>$gruppo)
{
echo '<option value="'.$row[id_gruppo].'" >'.$row[tipo_gruppo].'</option>';
}
else
{
echo '<option value="'.$row[id_gruppo].'" SELECTED>'.$row[tipo_gruppo].'</option>';
}
}
else
{
echo '<option value="'.$row[id_gruppo].'">'.$row[tipo_gruppo].'</option>';
}
}
?>
</select>
n.b. il codice vale per la struttura delle tabelle che ho usato io, se la tua è diversa ricordati di modificare leggermente il codice.
la funzione che vedi (onChange="inviaCambiamenti()") è una funzione js che ricarica la pagina inviando il valore della categoria selezionata, in modo da poter fare la seconda query; la devi mettere nell'head dell'html:
codice:
<script language="javascript">
function inviaCambiamenti(){
document.form1.action = "<?php echo $PHP_SELF; ?>";
document.form1.submit();
}
</script>
form1 è il nome della form in cui hai messo i menù, se è diverso cambialo pure nella funzione.
Spero di esermi spiegato bene e di esserti stato d'aiuto!