Foros del Web » Programando para Internet » PHP »

Insercción imagen en sql con php

Estas en el tema de Insercción imagen en sql con php en el foro de PHP en Foros del Web. Ante todo, lo primero es lo primero gente, buenas tardes Y ahora os comento mi problema, la verdad que ando algo desesperado... llevo dandole vueltas ...
  #1 (permalink)  
Antiguo 30/05/2011, 09:23
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 15 años, 9 meses
Puntos: 0
Insercción imagen en sql con php

Ante todo, lo primero es lo primero gente, buenas tardes

Y ahora os comento mi problema, la verdad que ando algo desesperado... llevo dandole vueltas mogollón de rato, y ya no me queda otro remedio que solicitar ayuda divina, por ello me encuentro aquí :)

Os cuento, tengo hecho un formulario para insertar varios datos en una base de datos de sql, y se me ocurrio subir una imagen, opte por subir la imagen a un directorio "imagenes" y que en la base de datos me almacenase la ruta, para así no tener problemas con las consultas.

Hice un formulario para subir solo imagenes y me funciono, pero quise añadir esto a un formulario más largo y no me funciona. Me sube la imagen al directorio "imagenes" y me almacena la ruta, ya que la muestro con un echo y me la muestra, pero no me introduce en la base de datos la ruta, esto es lo que me sale:

archivo subido con exito
Notice: Undefined index: nombrefoto in C:\xampp\htdocs\gescasa\regpropiedades.php on line 55
imagenes/bus_files.jpg


Os adjunto la información del código:

<?php
/*************************************
* Archivo de Registro de Propiedades *
**************************************/

// Conexión a Base de Datos
include ('conexion.php');

// Extracción Variables de Formulario
$ref = $_POST['ref'];
$fecha_alta = $_POST['fecha_alta'];
$alquilar = $_POST['alquilar'];
$vender = $_POST['vender'];
$v_seg_mano = $_POST['v_seg_mano'];
$v_obra_nueva = $_POST['v_obra_nueva'];
$traspasar = $_POST['traspasar'];
$otros = $_POST['otros'];
$tipo_propied = $_POST['tipo_propied'];
$agente = $_POST['agente'];
$provincia = $_POST['provincia'];
$localidad = $_POST['localidad'];
$zona = $_POST['zona'];
$codpostal = $_POST['codpostal'];
$direccion = $_POST['direccion'];
$altura = $_POST['altura'];
$num = $_POST['num'];
$piso = $_POST['piso'];
$puerta = $_POST['puerta'];
$escalera = $_POST['escalera'];
$est_propied = $_POST['est_propied'];
$orientacion = $_POST['orientacion'];
$ano_const = $_POST['ano_const'];
$observaciones = $_POST['observaciones'];
$visitar = $_POST['visitar'];
$descripcion = $_POST['descripcion'];
$num_banos = $_POST['num_banos'];
$num_hab = $_POST['num_hab'];
$salon = $_POST['salon'];
$despachos = $_POST['despachos'];
$ascensor = $_POST['ascensor'];
$calefcentral = $_POST['calefcentral'];
$garaje = $_POST['garaje'];
$muebles = $_POST['muebles'];
$otras_opc = $_POST['otras_opc'];
$m2utiles = $_POST['m2utiles'];
$m2const = $_POST['m2const'];
$nombrefoto;

//Subida de Imagen
$ruta = "imagenes/{$_FILES['nombrefoto']['name']}";
if(!copy($_FILES['nombrefoto']['tmp_name'], $ruta)) {
echo "error al copiar el archivo";
} else {
echo "archivo subido con exito";
$nombrefoto = $_POST['nombrefoto'];

// Consulta de Insercción de Datos a una variable
$sql=("INSERT INTO `gescasa`.`propiedades` (ref, fecha_alta, alquilar,
vender, v_seg_mano, v_obra_nueva, traspasar, otros, tipo_propied, agente,
provincia, localidad, zona, codpostal, direccion, num, piso, puerta,
escalera,est_propied, orientacion, ano_const, nombrefoto, ruta, observaciones,
visitar, descripcion, num_banos, num_hab, salon, despachos, ascensor, calefcentral,
garaje, muebles, otras_opc, m2utiles, m2const, ruta)
VALUES ('$ref, '$fecha_alta', '$alquilar', '$vender', '$v_seg_mano'
,'$v_obra_nueva' , '$traspasar', '$otros', '$tipo_propied', '$agente' ,
'$provincia' , '$localidad' , '$zona', '$codpostal ', '$direccion',`$num',
'$piso','$puerta', '$escalera', '$est_propied', '$orientacion',
'$ano_const', '$nombrefoto','$ruta',
'$observaciones', '$visitar', '$descripcion', '$num_banos', '$num_hab'
,'$salon', '$despachos', '$ascensor', '$calefcentral', '$garaje'
,'$muebles', '$otras_opc', '$m2utiles', '$m2const')");
}
// Consulta de Insercción en la Base de Datos
mysql_query($sql);

// Desconexión a Base de datos
include ('desconexion.php');
echo "$ruta";
?>



En el formulario los campos en cuestión estan asi:

<tr>

<td bgcolor="#e40000"><font color="#ffffff" face="arial" size="1">&nbsp;&nbsp;<b><u>F</u>oto Principal:</b>&nbsp;&nbsp;</font></td>

<td> <input type="file" tabindex="40" name="nombrefoto" size="32" maxlength="26" /></td>

</tr>



Ante todo muchas gracias. Salu2
  #2 (permalink)  
Antiguo 30/05/2011, 09:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Insercción imagen en sql con php

Pasa por el área de aportes de este foro para que veas un ejemplo de como guardar una imagen en la base de datos. Y te indico a la vez que es mala práctica hacerlo. Lo que se recomienda es guardar la imagen en el servidor y en la base de datos la dirección hacia donde está esa imagen en el servidor.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 30/05/2011, 09:38
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Insercción imagen en sql con php

abimaelrc, gracias por la contestación, pero como indico arriba, se como guardar la foto, lo tengo hecho, pero en una tabla más pequeña, y ahora al hacerlo con un formulario tan grande no se como me casca. Y también agradezco el consejo de lo de guardar la imagen, pero como digo arriba alojo las imagenes en un directorio llamado imagenes y en la tabla solo la ruta. Agradezco la contestación, pero está claro que no me leistes bien el post.
  #4 (permalink)  
Antiguo 30/05/2011, 09:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Insercción imagen en sql con php

Es verdad y disculpa eso, es que vi código sin usar las etiquetas Highlight que decidí basarme por el título que por el contenido. Trata de usar los highlight para distiguir que es código y que es texto, porque al igual que yo, muchos decidirán contestarte o no.

Bueno el caso es que te indica que no encuentra el indice mencionado, mira en el manual hay un ejemplo de verificar primero si subió correctamente un archivo y luego leer los datos http://php.net/manual/en/function.mo...oaded-file.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 30/05/2011, 09:48
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Insercción imagen en sql con php

No pasa nada, si me lo imagine que fue eso, que lo vistes por encima y te liastes, voy a ver el enlace. Gracias.
  #6 (permalink)  
Antiguo 30/05/2011, 09:51
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Insercción imagen en sql con php

He visto el enlace, y era una opción que había barajado, pero ahora que lo pienso mejor, creo que voy a separar el formulario, voy a subir las imagenes por separado y alojo el nombre y la ruta en otra tabla distinta, así puedo permitir que se suban más de una imagen por referencia y la gestión de las rutas es más sencilla, como total luego con las consultas accedo a todos los datos juntos si quiero...xd

Salu2
  #7 (permalink)  
Antiguo 30/05/2011, 09:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Insercción imagen en sql con php

Esa opción de trabajar imagenes por separado es la que uso, para cuando deseo que el usuario suba más de una imagen. Al final lo que hago es hacer un INNER JOIN y listo, con eso verifico que le pertenece a que usuario
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:56.