Foros del Web » Programando para Internet » PHP »

Foreach con UDDATE

Estas en el tema de Foreach con UDDATE en el foro de PHP en Foros del Web. Ante que todo quiero pedir disculpa por publicar nuevamente otro tema que trata de los mismo a mi anterior tema "ayuda, ayuda por favor", pero ...
  #1 (permalink)  
Antiguo 16/01/2010, 13:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 15 años, 7 meses
Puntos: 0
Foreach con UDDATE

Ante que todo quiero pedir disculpa por publicar nuevamente otro tema que trata de los mismo a mi anterior tema "ayuda, ayuda por favor", pero la verdad no se que hacer tengo este foreach en insertar y me funciona perfectamente, al menos eso parece .
Código PHP:
Ver original
  1. $result_id = pg_query("SELECT * FROM requisicion WHERE id_requisicion=$id_requisicion");
  2.  
  3. while($row_id = pg_fetch_array($result_id))
  4.  
  5. {
  6.  
  7.  
  8.  
  9.  
  10. foreach($_POST['renglon'] as $row=>$ren)
  11. {
  12. $renglon=pg_escape_string($ren);
  13. $articulo=pg_escape_string($_POST['articulo'][$row]);
  14. $descripcion=pg_escape_string($_POST['descripcion'][$row]);
  15. $unidad=pg_escape_string($_POST['unidad'][$row]);
  16. $cantidad=pg_escape_string($_POST["cantidad"][$row]);
  17. $id_requisicion=$row_id['id_requisicion'];
  18.  
  19. $query = "INSERT  INTO articulo_requisicion (renglon,articulo,descripcion,unidad,cantidad,num_requisicion)  
  20.  
  21. VALUES ('".$renglon."','".$articulo."','".$descripcion[$row]."','".$unidad."','".$cantidad."','".$id_requisicion."')";
  22.  
  23.  
  24. $result = pg_query($query) or die('Insercion de datos errada' . pg_last_error());
  25. }
  26. }

ahora necesito saber como puedo actualizar ya que si coloco lo mismo pero en ves de insetar (INSERT) coloco UPDATE solo me toma el ultimo valor del array y coloca lo mismo en todos.


aqui esta como genero los campos de textos dinamicos para el que lo necesite a mi me funciona perfectamente ingresando pero al momento de hacer un UPDATE con foreach tengo el problema dicho anteriormente.


Código Javascript:
Ver original
  1. <table   border="0.5" align="center" width="700" id="tablaFormulario">
  2.  
  3.        
  4.  
  5.  
  6.  
  7.  
  8.  
  9. </table>
  10.  
  11.      
  12.  
  13.       <tr>
  14.  
  15.         <td align="center"><input type="button" onClick="addarticulo()" value="Añadir" class="buttonb" ></td>
  16.  
  17.   <td align="center"><input type="button" onClick="removePerson()" value="Borrar" class="buttonb" ></td>      
  18. </tr>
  19.  
  20.         <script language="javascript" type="text/javascript">
  21.  
  22.  
  23.  
  24.  
  25.  
  26.        
  27.  
  28.     var indiceFilaFormulario=1;
  29.  
  30.    
  31.  
  32.  
  33. function addarticulo(){
  34.  
  35. var renglon=<?=$contador-1;?>//extraemos el valor de la variable renglon
  36.  
  37.  
  38.  
  39.     myNewRow = document.getElementById("tablaFormulario").insertRow(-1);
  40.  
  41.     myNewRow.id=indiceFilaFormulario;
  42.  
  43.     myNewCell=myNewRow.insertCell(-1);
  44.  
  45. alterno2=indiceFilaFormulario+renglon;
  46.        
  47.  
  48.     myNewCell.innerHTML="<td align='center'><input type='text' size='1' onFocus='this.blur()' value='"+alterno2+"' name='renglon[]' ></td>";
  49.  
  50.     myNewCell=myNewRow.insertCell(-1);
  51.  
  52.     myNewCell.innerHTML="<td align='center'> <textarea rows='1' cols='21' name='articulo[]' value='articulo[]' id='articulo' type='text'></textarea></td>";
  53.  
  54.     myNewCell=myNewRow.insertCell(-1);
  55.  
  56.     myNewCell.innerHTML="<td><textarea rows='1' cols='21'  name='descripcion[]' type='text'  ></textarea></td>";
  57.  
  58.     myNewCell=myNewRow.insertCell(-1);
  59.  
  60.     myNewCell.innerHTML="<td><input  type='text' size='4'  name='unidad[]'></td>";
  61.  
  62.     myNewCell=myNewRow.insertCell(-1);
  63.  
  64.     myNewCell.innerHTML="<td align='center'><input  type='text' size='4'  onkeyup='sumar()' name='cantidad[]'></td>";
  65.  
  66.  
  67.  
  68.     indiceFilaFormulario++;
  69.  
  70.     }
  71.  
  72.  
  73.  
  74.  
  75.     function removePerson(){
  76.  
  77.    
  78. if (indiceFilaFormulario >=2){
  79.                 // grab the element again!
  80.  
  81.                 var tbl = document.getElementById("tablaFormulario");
  82.  
  83.                 // grab the length!
  84.  
  85.                 var lastRow = tbl.rows.length;
  86.  
  87.                 // delete the last row if there is more than one row!
  88.  
  89.                 if (lastRow > -1) tbl.deleteRow(lastRow -1);
  90.  
  91.             indiceFilaFormulario--;
  92. }
  93.  
  94.     }
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. </script>
  103.  
  104.    
  105.    
  106.  
  107.            
  108.  
  109.  </table>

espero me puedan ayudar o decirme otra manera de actualizar los campos introducidos con array, hay que tener en cuenta el nombre de los input es renglon[], articulo[] etc.
  #2 (permalink)  
Antiguo 16/01/2010, 14:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Foreach con UDDATE

Muchas gracias por su ayuda ya eh encontrado gracias a dios no me creeran pero tarde un dia en esto, es que estoy saturado ya que voy atrasado con el proyecto, dejo aqui la solucion para el que tenga alguna duda pueda rasolverla.

Código PHP:
Ver original
  1. $i=0;
  2.  
  3.  
  4. foreach($_POST['renglon'] as $renglon)
  5. {
  6. $renglon=pg_escape_string($_POST['renglon'][$i]);
  7. $articulo=pg_escape_string($_POST['articulo'][$i]);
  8. $descripcion=pg_escape_string($_POST['descripcion'][$i]);
  9. $unidad=pg_escape_string($_POST['unidad'][$i]);
  10. $cantidad=pg_escape_string($_POST["cantidad"][$i]);
  11.  
  12. $query = "UPDATE articulo_requisicion SET renglon='".$_POST["renglon"][$i]."', articulo='$articulo',descripcion='$descripcion',unidad='$unidad', cantidad='$cantidad' Where num_requisicion=$id_requisicion AND renglon='".$_POST["renglon"][$i]."'" ;
  13.  
  14.  
  15. $result = pg_query($query) or die('Insercion de datos errada' . pg_last_error());
  16. $i++;
  17.  
  18.  
  19.  
  20.      
  21. }

Etiquetas: foreach
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 00:54.