Cierto, no había caído en eso.
Mira, te digo lo que creo que no funcionaba en el tuyo. Esta línea:
$registro = mysql_query("Select Marca from maniobras", $conexion);
El otro día me dijiste que si añadías $conexion te dejaba de funcionar. Yo he puesto esto:
$registro = mysql_query($sql);
Te explico un par de cosas, realmente mysql_query solicita que pases el resource de la base de datos por una razón muy sencilla, no puede saber a qué base de datos (a qué conexión) tiene que realizar dicha consulta. En este caso funciona bien porque sólo tienes una conexión dentro de tu código PHP, pero te encontrarás algunas aplicaciones para las que necesitarás conectar a varias bases de datos. Entonces tu código dejará de funcionar misteriosamente. Por eso, es mejor acostumbrarse a hacerlo bien desde el principio.
Qué es lo que pasa a tu código, por qué cuando añades $conexion deja de funcionar. Sencillo, probablemente $conexion no exista en esa parte del código, recuerda que esto es una función que llamas desde otro sitio. Para que existiera tendrías que pasarla como argumento:
Código PHP:
Ver originalfunction tipos($nombre_del_select, $conexion) {
$sql = "SELECT Fabricante FROM coches";
echo '<select name="' . $nombre_del_select . '" id="' .$nombre_del_select. '">';
echo '<option value="' . $datos['Fabricante'] . '"';
if (isset($_POST["$nombre_del_select"])) { if($_POST["$nombre_del_select"] == $datos['Fabricante']) {
echo ' selected="selected"';
}
}
echo '>' . $datos['Fabricante'] . '</option>';
}
echo '</select>';
}
Y hacer la llamada así:
<?php tipos("select_tipos", $conexion); ?>
Ya que seguramente en esa página sí que exista la conexión. Clear enough?
Un saludo.