Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Enviar datos a una columna desde nombrando otra columna.

Estas en el tema de Enviar datos a una columna desde nombrando otra columna. en el foro de Mysql en Foros del Web. Bueno, a ver si me explico. Lo que quiero hacer es subir una imagen de perfil a un usuario, para ello lo que quiero hacer ...
  #1 (permalink)  
Antiguo 27/05/2013, 11:19
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años, 7 meses
Puntos: 5
Enviar datos a una columna desde nombrando otra columna.

Bueno, a ver si me explico. Lo que quiero hacer es subir una imagen de perfil a un usuario, para ello lo que quiero hacer es seleccionar una columna (que sería la del nombre de usuario) correspondiente a su $_SESSION y añadirle en una misma columna de la misma fila la url de la imagen (llamada en este caso img_perfil).

Lo he intentado de esta forma pero no ha resultado:

Código MySQL:
Ver original
  1. update alumnos
  2. set img_perfil='$ruta'
  3. where usuario='$_SESSION[usuario]'

Espero que podáis ayudarme, si necesitáis más información no dudéis en pedírmela.

PD: Todo funciona perfecto, la imagen se me sube a la carpeta pero no a la base de datos.

PD2: La variable $ruta es la ruta de la imagen.

Última edición por gnzsoloyo; 27/05/2013 a las 12:25 Razón: Código de programacion no permitido en foros de bbdd.
  #2 (permalink)  
Antiguo 27/05/2013, 22:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Enviar datos a una columna desde nombrando otra columna.

<saludos>
Si se imprime el update y se corre directo en bd funciona?
Podría ser el modo en que se está mezclando la sentencia sql
con los valores de las variables.
Si va directo en el mysql_query la sentencia,
sería mejor tenerla primero en una variable $sql puede ser,
y al mysql_query enviarle dicha variable.
Y sobre esta hacer el echo para visualizar la sentencia
y ver si hay algún inconveniente, o si está bien formada
pero el valor está en blanco, y por eso al hacer el update
no se nota el cambio.
Uhm, y revisar que se esté usando el session_start en la página
pues de no usarse no tendrá id válido para el update.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 28/05/2013, 13:52
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: Enviar datos a una columna desde nombrando otra columna.

No entiendo muy bien, ¿puedes explicármelo mejor paso a paso? Muchas gracias :)
  #4 (permalink)  
Antiguo 28/05/2013, 19:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Enviar datos a una columna desde nombrando otra columna.

Cita:
Iniciado por iEnrique Ver Mensaje
PD: Todo funciona perfecto, la imagen se me sube a la carpeta pero no a la base de datos.
Eso es irrelevante para la BBDD. Es un tema del programa. Lo que a nosotros nos importa es por qué no hace el UPDATE, lo que hagas con el archivo en el servidor no nos afecta.

Cita:
Iniciado por iEnrique Ver Mensaje
PD2: La variable $ruta es la ruta de la imagen.
Pregunta 1: ¿Contiene contrabarras (\)?
Pregunta 2: ¿El usuario existe ya o hay que crearlo? (no podemos asumir nada)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/05/2013, 00:17
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Enviar datos a una columna desde nombrando otra columna.

Uhm, bueno, vamos por partes

1. Imprime el query desde la aplicación
2. Toma dicho query y ejecutalo directamente en la bd
3. Si el query funciona correctamente, entonces habrá que revisar
lo que comenta gnzsoloyo

Cita:
Iniciado por iEnrique Ver Mensaje
No entiendo muy bien, ¿puedes explicármelo mejor paso a paso? Muchas gracias :)
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 29/05/2013, 08:04
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: Enviar datos a una columna desde nombrando otra columna.

¡Pero lo que no sé es el query que tengo que usar! Mientras que vosotros me lo decís, yo compruebo con un "echo" o "print" lo que sale en $ruta y os cuento.

Gracias por vuestra atención...
  #7 (permalink)  
Antiguo 29/05/2013, 08:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Enviar datos a una columna desde nombrando otra columna.

Cita:
¡Pero lo que no sé es el query que tengo que usar!
¿Cómo que no sabes qué consulta usar?



Es elemental: Si es un registyro nuevo, es INSERT, si es actualizar un dato, es UPDATE... no hay mucho más que eso.
Pero el problema de que no se actualice no es tema de la consulta sino de los datos que usas.
Verifica lo que estás entrando.

Nota: Si la cadena de la ruta trae contrabarras (\), tienes que tener en cuenta que ese caracter es el escape, lo que puede generar errores de interpretación al SQL, con lo que podría incluso darte errores de sintaxis.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 29/05/2013, 09:07
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: Enviar datos a una columna desde nombrando otra columna.

A ver, por una parte quiero razonar una cosa, sé que es el UPDATE, pero lo que yo quiero saber es qué codigo usar para que el ordenador sepa donde tiene que poner esa URL.

El ordenador no puede ser adivino y yo solo tengo la id del usuario por lo que tendría que buscar una fila con esa id y añadir esa URL en la columna de "img_perfil". Mientras que lo que haría UPDATE sería buscar una URL que coincida con la URL actual y remplazarla... cosa que no quiero. Yo quiero que con la id del usuario, ponga en la columna de "img_perfil" la URL...

Lo que me sale cuando le pongo un "echo" a $ruta es esto: perfiles/1379.gif ¿Tengo que ponerle algo para que SQL no lance error?

Gracias por vuestra paciencia :S
  #9 (permalink)  
Antiguo 01/06/2013, 17:32
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Enviar datos a una columna desde nombrando otra columna.

<saludos>
Pues si bien es cierto que el ordenador no puede ser adivino, nosotros aunque podemos hacerlo, es mejor que nos den un poco de info no?
La impresión del query al que me refería es el update!!! El update del post que dió inicio a esto.
Así las cosas, seguimos en vilo esperando el echo de dicho update desde la página con todos los datos que usa, para ver que es lo que puede estar dando novedad

Esto porque el post original decía que el query no da resultado, para mi eso es que no funciona siquiera.

</saludos>

Cita:
Iniciado por iEnrique Ver Mensaje
A ver, por una parte quiero razonar una cosa, sé que es el UPDATE, pero lo que yo quiero saber es qué codigo usar para que el ordenador sepa donde tiene que poner esa URL.

El ordenador no puede ser adivino y yo solo tengo la id del usuario por lo que tendría que buscar una fila con esa id y añadir esa URL en la columna de "img_perfil". Mientras que lo que haría UPDATE sería buscar una URL que coincida con la URL actual y remplazarla... cosa que no quiero. Yo quiero que con la id del usuario, ponga en la columna de "img_perfil" la URL...

Lo que me sale cuando le pongo un "echo" a $ruta es esto: perfiles/1379.gif ¿Tengo que ponerle algo para que SQL no lance error?

Gracias por vuestra paciencia :S
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #10 (permalink)  
Antiguo 01/06/2013, 18:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Enviar datos a una columna desde nombrando otra columna.

Cita:
El ordenador no puede ser adivino y yo solo tengo la id del usuario por lo que tendría que buscar una fila con esa id y añadir esa URL en la columna de "img_perfil". Mientras que lo que haría UPDATE sería buscar una URL que coincida con la URL actual y remplazarla... cosa que no quiero. Yo quiero que con la id del usuario, ponga en la columna de "img_perfil" la URL...
La verdad no se termina de entender tu problema...
Si tienes el ID del usuario, con eso alcanza y sobra. El DBMS se encarga del resto a partir de la sentencia de SQL... El cómo, es total y absolutamente irrelevante, porque no tienes ni por qué saber cómo resuelve eso MySQL. Simplemente debes saber usar el la consulta adecuada y listo.
En tanto se cumpla como condición que el usuario esté correctamente identificado por su clave primaria (el ID en este caso), y que tal clave cumpla con las condiciones de unicidad y no nulidad, el sistema hará la opreación correspondiente.
Ahora bien, si ese ID no está definido como PK, y es repetible, entonces lo que tienes es un enorme conjunto de datos basura (no te ofendas, así se les llama), que nunca te servirá para nada. Al menos no sin depurarlo.

Resumiendo tu duda, si tienes el ID del usuario en cuestión, tú no eres el que busca la fila donde está, eso lo hace el MySQL, porque para eso se diseñó el proceso invocado por el UPDATE. Y para eso sólo se requiere que la query quede armada, luego de incrustado ese valor de las variables, como:
Código MySQL:
Ver original
  1. UPDATE alumnos
  2. SET img_perfil='perfiles/1379.gif'
  3. WHERE usuario='elquesea'
¿Te queda claro eso?

Si esto no responde tu duda, es que no la estás exponiendo clara y concisamente, o no estás entendiendo lo que es SQL. Y allí sólo te queda estudiar...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: columna, 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 13:57.