Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2010, 15:58
linux_debian
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
si no existe insertar, si existe actualizar y posibilidad de ingresar

buenas compañeros, estoy en algo que de verdad no eh podido con el tengo formularios dinamicos yo puedo ingresar perfectamente pero a la hora de modificar, aparecen los articulos pero no puedo hacer las dos cosas a la vez es decir el me actualiza ese articulo pero no me deja insertar otro. pongo parte del codigo


Consulta normal
Código PHP:

<?

$contador
='1';
$sql_articulo=pg_query("SELECT * FROM articulo_requisicion WHERE num_requisicion=$id");
//Una vez seleccionados los registros los mostramos para su edición
while($row_articulo=pg_fetch_array($sql_articulo))
{

?>

<table   border="0.5" >
    <tr>
<td ><input type='text' size='2' onFocus='this.blur()' value="<?php echo $contador ?>" name='renglon[]' readonly="readonly" ></td>

    

<td>

<input  type='text' size='17'  name='articulo[]' value="<?php echo $row_articulo['articulo'];?>" ></td>




<td>





<input  type='text' size='28' name='descripcion[]' value="<?php echo $row_articulo['descripcion'];?>" >


</td>



<td><input  type='text' size='5'  name='unidad[]' value="<?php echo $row_articulo['unidad'];?>" ></td>



       <td><input  type='text' size='4'  onkeyup='sumar()' name='cantidad[]' onkeypress='return onlyNumbersDano(event)';  value="<?php echo $row_articulo['cantidad'];?>"></td>



<td><a href=borrar_articulo.php?id_borrar=<?php echo $row_articulo['id_articulos'];?>&tnum=<?php echo $row_articulo['num_requisicion'];?> onclick="return confirm('¿Está seguro de eliminar este registro? \n P.D.: si lo elimina no lo podra recuperar de la base de datos.');">X</a></td>

   

</tr>

</table>



    

        <?
    $contador
++;
}

pg_free_result($sql_articulo)


?>
ahora muestro el que me genera los campos dinamicos

Código HTML:
Ver original
  1. <table   border="0"   id="tablaFormulario">
  2.  
  3.        
  4.  
  5.  
  6.  
  7.  
  8.  
  9. </table></td>
  10.  
  11.       </tr>
  12.  
  13.       <tr>
  14.  
  15.         <td align="center"><input type="button" onClick="addarticulo()" value="Añadir Articulo" class="buttonb" ></td>
  16.  
  17.    
  18. </tr>
  19.  
  20.         <script language="javascript" type="text/javascript">
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.     var indiceFilaFormulario=1;
  29.  
  30.     function addarticulo(){
  31.  
  32.     myNewRow = document.getElementById("tablaFormulario").insertRow(-1);
  33.  
  34.     myNewRow.id=indiceFilaFormulario;
  35.  
  36.     myNewCell=myNewRow.insertCell(-1);
  37. var renglon=<?=$contador-1;?>//extraemos el valor de la variable renglon
  38. alterno2=indiceFilaFormulario+renglon;
  39.  
  40.  
  41.  
  42.     myNewCell.innerHTML="<td><input type='text' size='1' onFocus='this.blur()' value='"+alterno2+"' name='renglon[]' style=' background:#FDFDFD; margin:3px 1px; padding:3px; border:1px solid #BCBCBC'></td>";
  43.  
  44.     myNewCell=myNewRow.insertCell(-1);
  45.  
  46.     myNewCell.innerHTML="<td><input  type='text' size='21'  name='articulo[]' id='articulo' style=' background:#FDFDFD; margin:3px 1px; padding:3px; border:1px solid #BCBCBC'></td>";
  47.  
  48.     myNewCell=myNewRow.insertCell(-1);
  49.  
  50.     myNewCell.innerHTML="<td><input  type='text'   size='37' name='descripcion[]' style=' background:#FDFDFD; margin:3px 1px; padding:3px; border:1px solid #BCBCBC'></td>";
  51.  
  52.     myNewCell=myNewRow.insertCell(-1);
  53.  
  54.     myNewCell.innerHTML="<td><input  type='text' size='4'  name='unidad[]' style=' background:#FDFDFD; margin:3px 1px; padding:3px; border:1px solid #BCBCBC'></td>";
  55.  
  56.     myNewCell=myNewRow.insertCell(-1);
  57.  
  58.     myNewCell.innerHTML="<td><input  type='text' size='4'  onkeyup='sumar()'   onkeypress='return onlyNumbersDano(event)';  name='cantidad[]' style=' background:#FDFDFD; margin:3px 1px; padding:3px; border:1px solid #BCBCBC'></td>";
  59.  
  60.   myNewCell=myNewRow.insertCell(-1);
  61.  
  62.          myNewCell.innerHTML="<td ><input type='button'  value='Borrar' onclick='removeLine(this)' style=' background:#2CB1DD; margin:3px 1px; padding:3px; border:1px solid #000099' ></td>"; 
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.        
  70.  
  71.  
  72.  
  73.     indiceFilaFormulario++;
  74.  
  75.     }
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.     function removeLine(obj){
  83.  
  84.          var oTr = obj;
  85.  
  86.          while(oTr.nodeName.toLowerCase()!='tr'){
  87.  
  88.               oTr=oTr.parentNode;
  89.  
  90.          }
  91.  
  92.          var root = oTr.parentNode;
  93.  
  94.          root.removeChild(oTr);
  95.  
  96. indiceFilaFormulario--;
  97.  
  98.  
  99.     }
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.        
  107.  
  108.            
  109.  
  110.  
  111.  
  112.        
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.    
  121.  
  122.     </table>


ahora el php de guardar, se que tengo errores pero la verdad no se como guardar e actualizar a la vez espero me puedan ayudar estaré agradecido.


Código PHP:
Ver original
  1. $checkid = pg_query("SELECT * FROM articulo_requisicion WHERE num_requisicion='$id_requisicion'");
  2.  
  3. $userid_exist = pg_fetch_array($checkid);
  4. $i=0;
  5. foreach($_POST['renglon'] as $renglon)
  6. {
  7. $renglon=pg_escape_string($_POST['renglon'][$i]);
  8. $articulo=pg_escape_string($_POST['articulo'][$i]);
  9. $descripcion=pg_escape_string($_POST['descripcion'][$i]);
  10. $unidad=pg_escape_string($_POST['unidad'][$i]);
  11. $cantidad=pg_escape_string($_POST["cantidad"][$i]);
  12.  
  13.  
  14. if ($userid_exist["num_requisicion"] == $id_requisicion) {//  aqui si el numero de requisicion es igual al q esta en la base de datos actualiza si no inserta, necesito insertar y actualizar a la vez,
  15. $query2 = "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]."'" ;
  16.  
  17.  
  18. //$query2 = "INSERT  INTO articulo_requisicion (renglon,articulo,descripcion,unidad,cantidad,num_requisicion)  
  19.  
  20. //VALUES ('".$renglon."','".$articulo."','".$descripcion."','".$unidad."','".$cantidad."','".$id_requisicion."')
  21. //SELECT * From articulo_requisicion WHERE NOT EXIST (SELECT * FROM articulo_requisicion WHERE renglon='".$renglon."' AND articulo='".$articulo."')
  22.  
  23. //";
  24.  
  25. $result2 = pg_query($query2) or die('Insercion de datos errada' . pg_last_error());
  26.  }else{
  27.  
  28. $query3 = "INSERT  INTO articulo_requisicion (renglon,articulo,descripcion,unidad,cantidad,num_requisicion)  
  29.  
  30. VALUES ('".$renglon."','".$articulo."','".$descripcion."','".$unidad."','".$cantidad."','".$id_requisicion."')";
  31. $result3 = pg_query($query3) or die('Insercion de datos errada' . pg_last_error());
  32.        }
  33.  
  34.  
  35.  
  36.  
  37. $i++;
  38.  
  39.  
  40.  
  41.      
  42. }