Ver Mensaje Individual
  #15 (permalink)  
Antiguo 13/10/2016, 17:59
Avatar de manuparquegiralda
manuparquegiralda
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: insertar mi foreach en mysql

Claro que no te funciona porque estás haciendo una consulta con la variables $str que tiene tantos UPDATES como te de el bucle separados por punto y coma. Esto no permite hacerlo PHP creo que por razones de seguridad contra inyecciones sql.

Yo lo haría así si no voy a tener un número muy alto de este tipo de actualizaciones y no me comería la cabeza más de la cuenta:

Código PHP:

<?php 
 $resta 
= array(=> 4=> 0=> 11); 
 
$id = array(=> 1=> 6); 
  
 
$resta array_values(array_filter($resta)); 
  
 for(
$k=0; isset($resta[$k]); $k++) { 
     
mysql_query("UPDATE inventario.registro SET unidades_r = unidades_r - ".$resta[$k]." WHERE ID_R = ".$id[$k]."");
 }

  
?>
También se puede utilizar el CASE de MYSQL algo así, aunque lo voy a hacer a boleo tomalo como una idea y ajustalo si no funciona:


Código PHP:
 $resta = array(=> 4=> 0=> 11); 
 
$id = array(=> 1=> 6); 
  
 
$resta array_values(array_filter($resta)); 

 
$str "";
 for(
$k=0; isset($resta[$k]); $k++) { 
    
$str .= " WHEN ".$id[$k]." THEN ".$resta[$k];
 }

 
$sql"UPDATE inventario.registro SET unidades_r CASE ID_R".$str." END WHERE ID_R IN (".implode(","$id).")";
 
mysql_query($sql); 
Repito, no sé si irá así exactamente pero si no por ahí van los tiros. Espero que todo esto te sirva para aprender a jugar con los bucles y los arrays un poquito mejor y te esfuerces en entender el código y no en copiar y pegar.

Un saludo.
__________________
Diseño Web - Arisman Web

Última edición por manuparquegiralda; 13/10/2016 a las 18:12