risolto 
codice:
<?php
include("mysql.inc.php");
$myconnect = mysql_connect($db_host, $db_user, $db_password);
$mydb = mysql_select_db($db_name, $myconnect);
$sql = "SELECT DISTINCT articolo FROM gamma ORDER BY articolo ASC";
$st = mysql_query( $sql, $myconnect ) or die(mysql_error());
echo "Regione <select size=\"1\" name=\"articolo\" onchange=\"location.href='prova.php?articolo='+this.options[this.selectedIndex].value;\">";
while ($data = mysql_fetch_object( $st )){
echo "<option value=\"{$data->articolo}\">{$data->articolo}</option>";
}
echo "</select>";
$articolo = isset($_GET['articolo']) ? $_GET['articolo'] : '';
if($articolo != ''){
$sql = "SELECT DISTINCT variante FROM gamma
WHERE articolo = '{$articolo}'
ORDER BY variante ASC";
$st = mysql_query( $sql, $myconnect ) or die(mysql_error());
echo "Variante <select size=\"1\" name=\"variante\" onchange=\"location.href='prova.php?articolo=$articolo&variante='+this.options[this.selectedIndex].value;\">";
while ($data = mysql_fetch_object( $st )){
echo "<option value=\"{$data->variante}\">{$data->variante}</option>";
}
echo "</select>";
}
$articolo = isset($_GET['articolo']) ? $_GET['articolo'] : '';
$variante = isset($_GET['variante']) ? $_GET['variante'] : '';
if($variante != ''){
$sql = "SELECT Taglia FROM gamma
WHERE articolo = '{$articolo}' AND
variante = '{$variante}'
ORDER BY Taglia ASC";
$st = mysql_query($sql, $myconnect) or die(mysql_error());
echo "Tg <select size=\"1\" name=\"taglia\">";
while ($data = mysql_fetch_object( $st )){
echo "<option value=\"{$data->Taglia}\">{$data->Taglia}</option>"; }
echo "</select>";
echo mysql_num_rows($st);
}
ora però il promo record non me lo accetta nel senso che essendo già scritto non riesco a farlo accettare solo se evidenzio il secondo cambia il valore se ritorno al primo no... mi conviene iniziare con il - tipo valore di default?