Ver Mensaje Individual
  #449 (permalink)  
Antiguo 10/06/2009, 07:55
Info23
 
Fecha de Ingreso: mayo-2009
Mensajes: 83
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binario)

Hola a todos,

He seguido el tutorial para subir imágenes a la base de datos y ha ido todo como la seda! Perfecto!

Pero ahora se me plantea el suiguiente problema... Necesito además de un campo para subir imágenes unos cuantos más como campos de textos. He intentado adaptar este tutorial a mis necesidades para que me suba todo junto a la base de datos pero me ha sido imposible!
La imagen la quiero introducir dentro de una tabla que contiene varios registros a parte del binario, tipo, size y nombre y como id utilizo una general de la tabla para todos los registros.

Este es mi codigo del formulario:

Código PHP:
<?php
$conexion 
mysql_connect('localhost''''');
mysql_select_db('');
?>

<FORM enctype="multipart/form-data" method="post" action="form5.php">

<!-- Comienzo tabla 1 !-->

  <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&ordm; Ba&ntilde;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&oacute;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>
</p>
<label>Archivo: <INPUT type="file" name="archivo" size="30">
</label>
  <p>
  <input type="submit" name="cmdBuscar" id="cmdBuscar" value="Enviar">
  </p>
  <p>&nbsp;</p>
</form>

<?php
mysql_close
($conexion); // Cierro la conexion con la base de datos
?>
Si pruebo a subir los campos de texto a la bae de datos no tengo problema, pero si intento introducir también la imagen siempre no consigo nada!!

Este es mi código php para subir el formulario a la base de datos:

Código PHP:
<?php

    
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
    
if(isset($_POST['tipovivienda']) && !empty($_POST['tipovivienda']) &&
    isset(
$_POST['ciudad']) && !empty($_POST['ciudad']) && isset($_POST['poblacion']) && !empty($_POST['poblacion']) && isset($_POST['email']) && !empty($_POST['email']) && isset($_POST['telefono']) && !empty($_POST['telefono']) && isset($_POST['precio']) && !empty($_POST['precio']) && isset($_POST['habitaciones']) && !empty($_POST['habitaciones']) && isset($_POST['banos']) && !empty($_POST['banos']) && isset($_POST['m2']) && !empty($_POST['m2']) && isset($_POST['cliente']) && !empty($_POST['cliente']) && isset($_POST['estado']) && !empty($_POST['estado']) && isset($_POST['opcion']) && !empty($_POST['opcion']) && isset($_POST['descripcion']) && !empty($_POST['descripcion'])) {


        
// Si entramos es que todo se ha realizado correctamente

        
$link mysql_connect("localhost","","");
        
mysql_select_db("",$link);

        
// Con esta sentencia SQL insertaremos los datos en la base de datos
        
mysql_query("INSERT INTO propiedades (idvivienda,idciudad,poblacion,email,telefono,precio,habitaciones,banos,m2,cliente,estado,opcion,descripcion)
        VALUES ('{$_POST['tipovivienda']}','{$_POST['ciudad']}','{$_POST['poblacion']}','{$_POST['email']}','{$_POST['telefono']}','{$_POST['precio']}','{$_POST['habitaciones']}','{$_POST['banos']}','{$_POST['m2']}','{$_POST['cliente']}','{$_POST['estado']}','{$_POST['opcion']}','{$_POST['descripcion']}')"
,$link);

        
// Ahora comprobaremos que todo ha ido correctamente
        
$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";

        }

    } else {

        echo 
"Error, no ha introducido todos los datos";

    }

?>
Este es el que intento adaptar pero no se que más probar ya... Lo he dejado limpio sin ningún tipo file para que lo veáis más claro.

Estaría eternemente agradecido si álguien me pudiese ayudar.

Gracias!