Foros del Web » Programando para Internet » PHP »

update array

Estas en el tema de update array en el foro de PHP en Foros del Web. Como puedo realizar un update de un array por ej: Código PHP: $data  = array( 'p1'  =>  $_POST [ 'p1' ], 'p2'  =>  $_POST [ 'p2' ...
  #1 (permalink)  
Antiguo 09/07/2014, 07:51
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
update array

Como puedo realizar un update de un array por ej:

Código PHP:
$data = array(
'p1' => $_POST['p1'],
'p2' => $_POST['p2']
etc.......
)

$this->db->query("update tabla set $data where id = ''1"); 

Saludos
  #2 (permalink)  
Antiguo 09/07/2014, 08:02
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: update array

usando IN:
Código SQL:
Ver original
  1. UPDATE nombre_tabla SET columna = valor WHERE id IN (1,2)
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 09/07/2014, 08:10
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: update array

hss no se entendio mi pregunta los datos que necesito actualizar son los que estan en mi array , no necesito multiples id .



$
Código PHP:
Ver original
  1. this->db->query("update tabla set p1 = $_POST['p1'], p2= $_POST['p2'] where id = ''{$_POST['id']}");

Saludos
  #4 (permalink)  
Antiguo 09/07/2014, 08:24
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 3 meses
Puntos: 20
Respuesta: update array

Haz esto

Código PHP:
Ver original
  1. $data[] = 'campo1 = "' . $_POST['p1'] . '"';
  2. $data[] = 'campo3 = "' . $_POST['p2'] . '"';
  3. $data[] = 'campo3 = "' . $_POST['p3'] . '"';
  4.  
  5. $qry = 'UPDATE table SET ' . implode(',', $data) . ' WHERE id = 1';
  6.  
  7. $this->db->query($qry);

Saludos.
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #5 (permalink)  
Antiguo 09/07/2014, 09:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: update array

Lo más adecuado sería hacerlo así:

Código PHP:
Ver original
  1. $valores = array();
  2.  
  3. foreach ($_POST as $clave => $valor)
  4.     $valores[] = $clave . ' = ' . $valor;
  5.  
  6. $final = implode(', ', $valores);
  7.  
  8. $this->db->query("UPDATE tabla SET {$final} WHERE id = 1");

De este modo, la consulta quedará así (suponiendo que los valores recibidos sean 1 y 2):

Código MySQL:
Ver original
  1. UPDATE tabla SET p1 = 1, p2 = 2 WHERE id = 1

Y si los valores necesitan ir entre apóstrofos, solo colócalos en la línea que alimenta al array $valores.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 09/07/2014, 09:27
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: update array

Creo que es mas dificil de depurar con tantos puntos y comas lo intento hacer con llaves

Código PHP:
Ver original
  1. $data(array
  2. 'p1'    =>  $_POST['p1'],
  3. 'p2'    =>  $_POST['p2']
  4. )
  5. UPDATE tabla SET implode(',', {$data})

Pero no me funciona
  #7 (permalink)  
Antiguo 09/07/2014, 09:58
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: update array

No debes de usar la sintaxis con llaves para pasar variables a una función
Código PHP:
Ver original
  1. //cambia esto
  2. UPDATE tabla SET implode(',', {$data})
  3. //por esto
  4. UPDATE tabla SET implode(',', $data)
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 09/07/2014, 10:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: update array

matt_1985, no va a funcionar porque lo que generas es esto:

Código MySQL:
Ver original
  1. UPDATE tabla SET 1,2

Ni siquiera especificas el campo a actualizar. Inténtalo del modo que te indiqué, es fácil de implementar y entender y si tienes alguna duda, pregúntame y te explico.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 09/07/2014, 10:35
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: update array

Alexis88, cuando escribí el mensaje no habia visto el tuyo, te comento luego si me funciona.

Saludos y gracias

Etiquetas: tabla, 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 15:11.