Foros del Web » Programando para Internet » PHP »

Update multiples filas

Estas en el tema de Update multiples filas en el foro de PHP en Foros del Web. Hola, estoy intentando hacer un update de multiples filas a la vez pero no lo consigo, despues de mucho intentarlo, hos pongo el 'echo' del ...
  #1 (permalink)  
Antiguo 20/12/2012, 06:57
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Update multiples filas

Hola,

estoy intentando hacer un update de multiples filas a la vez pero no lo consigo, despues de mucho intentarlo, hos pongo el 'echo' del update, y el error que me da.

EL update justo antes de hacer el query:

Código PHP:
Ver original
  1. UPDATE vias SET resena = CASE nombrev WHEN 'AAVIA' THEN '120lighthouse.jpg' WHEN 'xzccxcx' THEN '120lighthouse.jpg' WHEN 'ds sdaf' THEN '120lighthouse.jpg' WHERE nombrev IN ('AAVIA','xzccxcx','ds sdaf')

y el error es :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE nombrev IN ('AAVIA','xzccxcx','ds sdaf')' at line 1

Haber si encontrais el fallo, que llebo horas retoncando comas y parentesis :)
  #2 (permalink)  
Antiguo 20/12/2012, 07:01
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: Update multiples filas

Hmmm trata encerrando entre parentesis todo el case.
__________________
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 20/12/2012, 07:05
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, 5 meses
Puntos: 2658
Respuesta: Update multiples filas

CASE es una mala elección para este tipo de cosas.
Código MySQL:
Ver original
  1.     vias SET resena = IF(nombrev = 'AAVIA',
  2.                          '120lighthouse.jpg',
  3.                          IF(nombrev = 'xzccxcx',
  4.                             '120lighthouse.jpg',
  5.                             IF(nombrev = 'ds sdaf',
  6.                                     '120lighthouse.jpg',
  7.                                     resena)))
  8. WHERE nombrev IN ('AAVIA','xzccxcx','ds sdaf')
__________________
¿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 20/12/2012, 07:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Update multiples filas

MEDIO CONSEGUIDO!!

Lo he echo como decia gnzsoloyo, pero hay un error que ahora si no entiendo para nada. el update lo contruyo con un for, segun un select multiple, hos pongo el echo:

Código PHP:
Ver original
  1. UPDATE vias SET resena =IF(nombrev = 'AAVIA', '108hydrangeas.jpg', IF(nombrev = 'dfasdfsda', '108hydrangeas.jpg', IF(nombrev = 'Proba final', '108hydrangeas.jpg', IF(nombrev = 'ds sdaf', '108hydrangeas.jpg', resena )))) WHERE nombrev IN ('AAVIA','dfasdfsda','Proba final','ds sdaf')

Como veis, hay 4 Vias, donde hacer el update, pero me lo hace en solo en 3, la primera (AAAVIA) no me lo actualiza...

He probado con mas ejemplos, y simpre me deja el primero sin actualizar.
  #5 (permalink)  
Antiguo 20/12/2012, 07:30
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: Update multiples filas

¿resena no debe estar entre comillas?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 20/12/2012, 07:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Update multiples filas

Perdon, ya vi el error, era mio al crear la consulta, borraba una letra de la primera via en el for creo, ahora lo buscare
  #7 (permalink)  
Antiguo 20/12/2012, 08:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Update multiples filas

Buenas, de nuevo!

No queria abrir otro hilo para una nueva consulta ya que va ligado al problema anterior.

tengo 2 updates, uno simple, solo un campo, y el multiple, el del problema anterior.

Pero debo hacer que se vayan sumando las cadenas en cada campo despues de cada update, con el update simple ya se hacerlo:

Código PHP:
Ver original
  1. $sql2 = "UPDATE vias SET resena=CONCAT('".$userfile_name.",', resena)  WHERE nombrev='".$via."'";

Pero con el multiple no tengo ni idea de donde poner el CONCAT() ni como montarlo..
  #8 (permalink)  
Antiguo 20/12/2012, 09: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: 16 años, 5 meses
Puntos: 2658
Respuesta: Update multiples filas

Si $userfile_name contiene valores distintos por cada $via diferente, no hay modo de hacerlo en forma masiva. Al menos no con una consulta sencilla.
Si ambos valores son iguales en todos los casos, no deberías tener problemas.
Muéstranos un ejemplo del caso, porque con los datos que propones no queda claro lo que tienes y lo que hay que lograr.
__________________
¿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: filas, multiples, mysql, sql, 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 11:00.