Comunidad de diseño web y desarrollo en internet online

Insertar un foreach en mysql

Citar            
MensajeEscrito el 13 Oct 2016 03:58 am
Hola Saludos a todos tengo un problema con mi codigo no logro insertar un foreach en mysql alguien me podria ayudar porque estoy bloqueado y no se como seguir avanzando, aqui les dejo mi codigo de lo que llevo.

Código PHP :

<?php
  
$res = ""; 
$str = ""; 
foreach($id as $k => $valorr) 
{ $idd[] = $valorr; 
} 
$resta = array_filter($resta);  
foreach($resta as $k => $valor) {     
    $str .= "UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - ".$resta[$k]." WHERE ID_R = ".$idd[0].";</br>"; 
} 
  
echo $str; 
  
?>


Resultado

Código PHP :

UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 4 WHERE ID_R = 1; 
UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 11 WHERE ID_R = 1;  


Resultado que Busco

Código PHP :

UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 4 WHERE ID_R = 1; 
UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 11 WHERE ID_R = 6; 


el caso es que en esta parte coloco

Código PHP :

 WHERE ID_R = ".$idd[0] 
<- el cero y me sale ID = 1 si coloco ".$idd[1] me sale el ID = 6 , como hago para que funcione automatico?.. es lo que llevo hasta ahora Saludos espero me puedan ayudar porfa

Por sonreiders

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Oct 2016 08:34 am
Entiendo que lo que necesitas son dos bucles anidados, no? es decir, para dentro del primer foreach, debes meter el segundo.Algo así:

Código HTML :

$resta = array_filter($resta);  
foreach($id as $kk => $valorr) 
{ 
     $idd[] = $valorr; 
    foreach($resta as $k => $valor) 
    {     
          $str .= "UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - ".$resta[$k]." WHERE ID_R = ".$idd[$kk].";</br>"; 
   } 
} 


Un saludo,
David
Web, soluciones

Por conectart

Claber

128 de clabLevel



 

ceo

chrome
Citar            
MensajeEscrito el 13 Oct 2016 02:16 pm
Hola gracias por la ayuda funciona pero me sale duplicado este es el resultado

UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 3 WHERE ID_R = 1;
UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 16 WHERE ID_R = 1;
UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 3 WHERE ID_R = 6;
UPDATE `inventario`.`registro` SET `unidades_r` = `unidades_r` - 16 WHERE ID_R = 6;

Y este es el array que le llega

Array ( [0] => 4 [1] => 0 [2] => 11 ) Array ( [0] => 1 [1] => 6 )

<- resta .. ID ->

Por sonreiders

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Oct 2016 11:11 am
Hola,
los dos arrays's siempre tienen la misma longitud?? El primer elemento de un array va siempre con el primer elemento del segundo?? Si es así, usa el mismo indice para recorrer ambos arrays's.

Un saludo
David

Por conectart

Claber

128 de clabLevel



 

ceo

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.