ho fatto un veloce copia-incolla e ho provato ad adattarlo, prova:

codice:
<?php 
error_reporting(E_ALL); 

$link=mysql_connect( "Localhost", "root", "root") 
or die ( "Non riesco a connettermi a [b]Localhost"); 
mysql_select_db ("database", $link) 
or die ( "Non riesco a selezionare il db database
"); 

$regione = strip_tags(stripslashes(trim($_POST['regione'])));
$provincia = strip_tags(stripslashes(trim($_POST['provincia'])));

$query="SELECT DISTINCT regione FROM 004_provincia order by 'regione'"; 
$result = mysql_query($query); 
?>
<html>
<head>
<script type="text/javascript"> 

function inviaCambiamenti(){ 
document.form1.action = "<?php echo $_SERVER['PHP_SELF']; ?>"; 
document.form1.submit(); 
} 

</script>
</head>

<table align="right" border="0">
  <tr>
    <td align="right"><form>
        <input type="button" value="Chiudi" onClick="closewindow()">
      </form></td>
  </tr>
</table>
<form name="form1" action="update.php" method="POST">
  <table border="0" width="30%">
    <caption align="left">
    <font color="#0000FF" size="4">Crea un nuovo annuncio</font>
    </caption>
    <tr></tr>
    <tr>
      <td width="10%"></td>
      <th width="10%"><p align="right"><font color="#0000FF">Regione</font></th>
      <td width="10%">
	  <select name="regione" onChange="inviaCambiamenti(); ">
          <? 

print '<option value="">Seleziona</option>'; 
while($row = mysql_fetch_assoc($result)) 
{ 
	if($regione != ''){ 
		if ($row['regione'] <> $regione){ 
			echo '<option value="'.$row['regione'].'" >'.$row['regione'].'</option>'; 
		}else{ 
			echo '<option value="'.$row['regione'].'" SELECTED>'.$row['regione'].'</option>'; 
		} 
	} else { 
		echo '<option value="'.$row['regione'].'">'.$row['regione'].'</option>'; 
	} 
} 
?>
        </select></td>
    </tr>
    <tr>
      <td width="10%"></td>
      <th width="10%"><p align="right"><font color="#0000FF">Provincia</font></th>
      <td width="10%">
	  	<?
	    $query2 ="SELECT DISTINCT regione,provincia FROM 004_provincia WHERE regione='".$regione."'";	
		$result2 = mysql_query($query2)or die(mysql_error());; 
		?>
<select name="provincia" onChange="inviaCambiamenti();">
          <? 

echo '<option value="">Seleziona</option>'; 
while($row2 = mysql_fetch_assoc($result2)) { 
	if($provincia != ''){ 
		if ($row2['provincia'] <> $provincia){ 
			echo '<option value="'.$row2['provincia'].'" >'.$row2['provincia'].'</option>'; 
		}else{ 
			echo '<option value="'.$row2['provincia'].'" SELECTED>'.$row2['provincia'].'</option>'; 
		} 
	} else { 
		echo '<option value="'.$row2['provincia'].'">'.$row2['provincia'].'</option>'; 
	}  
} 
?>
        </select>
        
    <tr>
      <td></td>
      <td></td>
      <td></td>
      <td><input type="submit" value="Invia"></td>
    </tr>
  </table>
</form>
Display annuncio ...
</body></html>
copia e incolla tutto il codice



se ti va anche quello proposto da stefano3804...beh ora hai due soluzioni





p.s. il mio non l'ho testato...prova e fammi sapere

p.s2. non capisco perché nel codice il forum inserisca dei \n a caso spezzettando determinate righe su più righe [naturalmente nel tuo codice metti tutto sulla stessa riga]