Ya veo :)
usas pistas:
si pones: <option value="01" selected="selected">Enero</option> te aseguras de que por defecto haya algo seleccionado, así te ahorras el if(isset ($_POST['fecha']) && !empty($_POST['fecha'])) ya que siempre se le pasa algo.
Excepto cuando haces el for, hazlo igual pero en lugar de for hazlo del 1991 en adelante, pero antes creas un option con el selected de 1990
Por otro lado:
$dia = $_POST["dia"];
$mes = $_POST["mes"];
$anyo = $_POST["anyo"];
ya que imagino que tendrás en el form un método post.
vamos:
Código PHP:
<?php
$dia = $_POST["dia"];
$mes = $_POST["mes"];
$anyo = $_POST["anyo"];
$fecha = $dia . " de " . $mes . " del " . $anyo;
$link = mysql_connect("localhost","xxxx","xxxx");
mysql_select_db("xxxx",$link);
mysql_query("INSERT INTO prueba (fecha) VALUES ('$fecha')", $link);
$my_error = mysql_error($link);
if(!empty($my_error)) {
echo "Ha habido un error al insertar los valores. $my_error";
} else {
echo "Los datos han sido introducidos satisfactoriamente";
}
?>
y en el html
Código PHP:
<select id:"dia" name="dia">
<?php
echo "<option value="1" selected="selected">1</option>";
for ($i=2;$i<32;$i++){
echo "<option value="$i">$i</option>";
}
?>
</select> de
<select id="mes" name="mes">
<option value="01">Enero</option>
<option value="02">Febrero</option>
<option value="03">Marzo</option>
<option value="04">Abril</option>
<option value="05">Mayo</option>
<option value="06">Junio</option>
<option value="07">Julio</option>
<option value="08">Agosto</option>
<option value="09">Septiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
</select> de
<select id="anyo" name="anyo">
<?php
echo "<option value="1990" selected="selected">1990</option>";
for ($i=1991;$i<2010;$i++){
echo "<option value="$i">$i</option>";
}
?>
</select>
He modificado cosas del html, aunque en mes, quizá (a tu gusto), mejor poner en los values el mes y no el número, según como lo quieras mostrar luego, pero como digo, a tu gusto.