Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Carga de Imagenes a servidor y UPDATE de ruta

Estas en el tema de Carga de Imagenes a servidor y UPDATE de ruta en el foro de PHP en Foros del Web. Buen Dia, Estoy realizando un pequeño sistema que te guarda una imagen en una carpeta del servidor, y a su vez la ruta en una ...
  #1 (permalink)  
Antiguo 22/08/2013, 09:23
 
Fecha de Ingreso: marzo-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Carga de Imagenes a servidor y UPDATE de ruta

Buen Dia,

Estoy realizando un pequeño sistema que te guarda una imagen en una carpeta del servidor, y a su vez la ruta en una base de datos, el problema es que el sistema requiere que se pueda actualizar esta imagen, por lo que tengo el siguiente codigo para hacer la actualizacion de este dato, pero no me funciona.

Código PHP:
<?php 
$conexion
=mysql_connect('localhost','root','') or die('No hay conexión a la base de datos');
$db=mysql_select_db('base',$conexion)or die('no existe la base de datos.');


$id=$_POST['usr_id'];
$tabla=$_POST['usr_tabla'];
$columna=$_POST['usr_columna'];
$rute=$_POST['usr_ruta'];
$rutaEnServidor='imagenes';
$rutaTemporal=$_FILES['imagen']['tmp_name'];
$nombreImagen=$id.'-'.$tabla.'-'.$_FILES['imagen']['name'];
$rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
move_uploaded_file($rutaTemporal,$rutaDestino);

$sql=("UPDATE ".$tabla"set" .$rute"=" .$rutaDestino"," .$columna"= SI WHERE id =" .$id.);


$res=mysql_query($sql,$conexion);

if (
$res){
    echo 
'Se Actualizo la Imagen de manera correcta';
}else{
    echo 
"No se pudo modificar el registro";;


?>
cuando lo corro no me aparece nada me sale error ya trate de varios modos pero no e podido corregirlo.

Agradesco su ayuda.

Saludos,
  #2 (permalink)  
Antiguo 22/08/2013, 10:03
 
Fecha de Ingreso: febrero-2012
Ubicación: Palma
Mensajes: 9
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Carga de Imagenes a servidor y UPDATE de ruta

Buenas tades,

Para depurar con Mysql yo siempre uso la función mysql_error() o bien "pinto" la SQL que he generado dinámicamente...
A simple vista yo diria que tu problema es la variables de texto $rutaDestino en la sql, ya que no pones comillas para indicar que el valor es un texto. Quedaría así:

$sql=("UPDATE ".$tabla. "set" .$rute. "='" .$rutaDestino. "'," .$columna. "= SI WHERE id =" .$id.);
  #3 (permalink)  
Antiguo 22/08/2013, 10:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Carga de Imagenes a servidor y UPDATE de ruta

Código PHP:
Ver original
  1. $sql=("UPDATE ".$tabla. "set" .$rute. "=" .$rutaDestino. "," .$columna. "= SI WHERE id =" .$id.);
Estás generando una query mal estructurada y escrita.
1) Las cadenas de texto deben quedar contenidas entre apóstrofos.
2) Debe existir al menos un espacio entre la cláusula SQL y el nombre del campo o tabla, o de lo contrario se genera un error sintáctico.
Código PHP:
Ver original
  1. $sql="UPDATE $tabla SET set $rute = '$rutaDestino', $columna = 'SI' WHERE id = $id";
O si quieres:
Código PHP:
Ver original
  1. $sql="UPDATE ".$tabla. " SET " .$rute. "='" .$rutaDestino. "'," .$columna. "= 'SI' WHERE id = " .$id.;
Fuera de eso, recuerda que los nombres de tablas y columnas no deben tener espacios intermedios ni signos especiales, en especial operadores matemáticos. Eso podría genera errores.
Por su parte, las rutas de acceso a archivos no deben contener barras inversas simples, sino que deben escaparse siempre.
Es decir, por ejemplo, en la cadena de SQL, Esto:
Cita:
D:\Archivos\txtx\texto.xtxt
debe quedar guardado como
Cita:
D:\\Archivos\\txtx\\texto.xtxt
Para que luego los caracteres se almacenen bien en la tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/08/2013, 11:25
 
Fecha de Ingreso: marzo-2013
Mensajes: 8
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Carga de Imagenes a servidor y UPDATE de ruta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código PHP:
Ver original
  1. $sql=("UPDATE ".$tabla. "set" .$rute. "=" .$rutaDestino. "," .$columna. "= SI WHERE id =" .$id.);
Estás generando una query mal estructurada y escrita.
1) Las cadenas de texto deben quedar contenidas entre apóstrofos.
2) Debe existir al menos un espacio entre la cláusula SQL y el nombre del campo o tabla, o de lo contrario se genera un error sintáctico.
Código PHP:
Ver original
  1. $sql="UPDATE $tabla SET set $rute = '$rutaDestino', $columna = 'SI' WHERE id = $id";
O si quieres:
Código PHP:
Ver original
  1. $sql="UPDATE ".$tabla. " SET " .$rute. "='" .$rutaDestino. "'," .$columna. "= 'SI' WHERE id = " .$id.;
Fuera de eso, recuerda que los nombres de tablas y columnas no deben tener espacios intermedios ni signos especiales, en especial operadores matemáticos. Eso podría genera errores.
Por su parte, las rutas de acceso a archivos no deben contener barras inversas simples, sino que deben escaparse siempre.
Es decir, por ejemplo, en la cadena de SQL, Esto:
debe quedar guardado como
Para que luego los caracteres se almacenen bien en la tabla.
Muchas Gracias por tus comentarios me han ayudado mucho para seguir mejorando en este mundillo.

Código PHP:
Ver original
  1. $sql="UPDATE $tabla SET set $rute = '$rutaDestino', $columna = 'SI' WHERE id = $id";

esta es la linea que funciono.

Solo que me esta surgiendo un detalle y es el siguiente:

tengo estas variables declaradas:

Código PHP:
$id=$_POST['usr_id'];
$tabla=$_POST['usr_tabla'];
$columna=$_POST['usr_columna'];
$rute=$_POST['usr_ruta']; 
el problema es que ahora realiza la actualizacion de los datos correctamente en la base de datos, PERO NO REALIZA LA CARGA DEL ARCHIVO AL SERVIDOR.

pero si elimino esas variables o bien si las pongo despues de estos datos:

Código PHP:
$rutaEnServidor='imagenes';
$rutaTemporal=$_FILES['imagen']['tmp_name'];
$nombreImagen=$id.'-'.$tabla.'-'.$_FILES['imagen']['name'];
$rutaDestino=$rutaEnServidor.'/'.$nombreImagen
y antes de
Código PHP:
move_uploaded_file($rutaTemporal,$rutaDestino); 
si realiza la carga del archivo osea aparece en mi carpeta imagenes como lo declare, tambien hace la actualizacion en la base de datos la esta realizando de manera correcta, el detalle es que las variables de $id y $tabla las utilizo para hacer una diferenciacion de las imagenes por si tienen nombres iguales pero si son declaradas antes no realiza la carga
Código PHP:
nombreImagen=$id.'-'.$tabla.'-'.$_FILES['imagen']['name']; 

Etiquetas: bd, mysql, php+bd+mysql, update
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 17:27.