Claro que si!
Los siguientes códigos sirven para insertar un formulario con diversos campos incluyendo un campo para subir archivos a Mysql con códigos php
Formulario php y html:
Código PHP:
<?php
$conexion = mysql_connect('localhost', '', '');
mysql_select_db('');
?>
<?php
if (isset($_GET['proceso'])){
echo $_GET['proceso']."<br>";
}
?>
<FORM enctype="multipart/form-data" method="post" action="insertar.php">
<label>Tipo de vivienda:<br />
<select name="tipovivienda" id="tipovivienda">
<option value="0">--Escoja tipo alquiler--</option>
<?php
$tablavivienda = mysql_query("SELECT * FROM vivienda ORDER BY id ASC"); // Seleccionamos las ciudades de la tabla ciudades
while ($registrovivienda = mysql_fetch_array($tablavivienda)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
<option value="<?php echo $registrovivienda['id']; ?>"><?php echo $registrovivienda['tipo']; ?></option>
<?php
} // termina la zona de repeticion
mysql_free_result($tablavivienda); // se libera la memoria usada por la tabla
?>
</select>
</label>
<font color="red">(*)</font></p>
<p>
<label>Ciudad:<br />
<select name="ciudad" id="ciudad">
<option value="0">---Escoja la ciudad---</option>
<?php
$tablaciudades = mysql_query("SELECT * FROM ciudades ORDER BY nombre ASC"); // Seleccionamos las ciudades de la tabla ciudades
while ($registrociudad = mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
<option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
} // termina la zona de repeticion
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
</select>
<font color="red">(*)</font><br />
<br />
<label>Población / Zona:<br />
<input name="poblacion" type="text" id="poblacion" size="21" maxlength="30" />
<font color="red">(*)</font><br />
<br /><label>
<label>E-mail:<br />
<input name="email" type="text" id="email" size="21" maxlength="50" />
<font color=red>(*)</font></label>
<br />
<br />
<label>Teléfono:
<br />
<input name="telefono" type="text" id="telefono" size="21" maxlength="30" />
</label>
<!-- Fin tabla 1 !-->
<br />
<br />
<label>Precio:<br />
<input name="precio" type="text" id="precio" size="16" maxlength="20" />
</label>
</p>
<p>
<label>Metros Cuadrados:<br />
<input name="m2" type="text" id="m2" size="16" maxlength="10" />
</label>
<br />
<br />
<label>Nº Habitaciones:
<br />
<input name="habitaciones" type="text" id="habitaciones" size="16" maxlength="2" />
</label>
<br />
<br />
<label>Nº Baños:
<br />
<input name="banos" type="text" id="banos" size="16" maxlength="2" />
</label>
</p>
<p>
<label>Segundamano
<input name="estado" type="radio" id="estado_0" value="Segundamano" checked="checked" />
</label>
<label>Obra Nueva
<input type="radio" name="estado" value="Obra Nueva" id="estado_1" />
</label>
</p>
<label>Opción a Compra: Si
<input name="opcion" type="radio" id="opcion_0" value="Si" checked="checked" />
</label>
<label>No
<input type="radio" name="opcion" value="No" id="estado_1" />
</label>
</p>
<p>
<label>Particular
<input name="cliente" type="radio" id="cliente_0" value="Particular" checked="checked" />
</label>
<label>Inmobiliaria
<input type="radio" name="cliente" value="Inmobiliaria" id="cliente_1" />
</label>
</p>
<p>
<label>Descripción Inmueble<br />
<textarea name="descripcion" id="descripcion" cols="40" rows="5"></textarea>
</label>
<label>Archivo:</label>
<INPUT type="file" name="archivo" size="30">
<INPUT type="submit" name="submit" value="Subir archivo">
</form>
Codigo php para insertar el formulario en la base de datos:
Código PHP:
<?php
//Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción:
// No se comprueba aqui si se ha subido correctamente.
if (empty($_FILES['archivo']['name'])){
header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit;
}
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.
// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "r"), filesize($binario_nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];
$tipovivienda=$_POST['tipovivienda'];
$ciudad=$_POST['ciudad'];
$poblacion=$_POST['poblacion'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$precio=$_POST['precio'];
$habitaciones=$_POST['habitaciones'];
$banos=$_POST['banos'];
$m2=$_POST['m2'];
$cliente=$_POST['cliente'];
$estado=$_POST['estado'];
$opcion=$_POST['opcion'];
$descripcion=$_POST['descripcion'];
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO propiedades (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo, idvivienda, idciudad, poblacion, email, telefono, precio, habitaciones, banos, m2, cliente, estado, opcion, descripcion) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo', '$tipovivienda', '$ciudad', '$poblacion', '$email', '$telefono', '$precio', '$habitaciones', '$banos', '$m2', '$cliente', '$estado', '$opcion', '$descripcion')";
mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos.");
header("location: listar_imagenes.php"); // si ha ido todo bien
exit;
?>