Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2009, 12:01
Info23
 
Fecha de Ingreso: mayo-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 1
Exclamación Subir imágenes a Mysql con php

Hola a todos,
Hace poco que he comenzado con esto del php y he llegado a un punto en el cual me supera. Estoy creando un formulario para un portal inmobiliario y he creado todos los campos para que me los inserte en mi base de datos, pero el campo para el archivo no hay forma de que me lo suba a la base, y pruebe lo que pruebe me da error.
Para subir la imagen a la base de datos he estado viendo un tutorial que tenéis en foros del web y si subo la imagen por separado del formulario me funciona, pero si lo intento mezclar con los demas campos y adaptarlo no funciona. El tutorial este: http://www.forosdelweb.com/f18/tutor...inario-127775/
Os paso los cosigos que estoy utilizando y me decíis si sabéis como se puede hacer!

Codigo del formulario:

Código PHP:
<?php
$conexion 
mysql_connect('localhost''usuario''contraseña');
mysql_select_db('nombre base de datos');
?>

<FORM enctype="multipart/form-data" method="post" action="fotobd.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>
<p>
  <label>Archivo: <br />
    <INPUT type="file" name="archivo" size="30">
  </label>
</p>
  <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
?>
Codigo para insertar la imagen en 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","usuario","contraseña");
        
mysql_select_db("nombre base de datos",$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 código que intento amoldar con el tutorial pero no lo consigo, así que lo dejo como estaría sin introducir ningún tipo de codigo para insertar la imagen y así lo veréis más claro.
Perdonar por el desorden de los códigos pero como ya os he dicho los estoy utilizando para hacer pruebas.

Si tenéis cualquier otra pregunta no dudéis en hacermela!

Gracias y un saludo!