Ir al contenido


Foto

Actualizar registros con diferentes id cargados mediante While...


  • Por favor identifícate para responder
21 respuestas en este tema

#1 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 19 diciembre 2011 - 07:31

En si necesito actualizar un solo campo de esta tabla que muestro con un while, y es el último, el del text box..Como los cargo con while para identificar los diferentes registros a los text_box en el name les agrego su id correspondiente que traigo mediante consulta de la BD.
Eh aquí mi tabla:


<?php
while ($reg=mysql_fetch_array($res))
{
  ?>
    <tr class="registros">
      <td valing="top" align="center"><?php echo $reg["id_cred"];?></td>
      <td valing="top" align="center"><a href="../creditos/con_cre.php?id_cred=<?php echo $reg["id_cred"];?>"><?php echo $reg["cli_ape_nom"];?></a></td>
      <td valing="top" align="center"><?php echo $reg["cli_domicilio"];?></td>
      <td align="center" valing="top"><?php echo $reg["cli_calles"];?></td>
      <td valing="top" align="center"><?php echo $reg["cli_barrio"];?></td>
      <td align="center" valing="top"><?php echo $reg["tipo"];?> / <?php echo $reg["cantidad"];?></td>
      <td align="center" valing="top"><?php echo $reg["import_dia"];?></td>
      <td align="center" valing="top">
      <input type="hidden" name="pago" value="<?php echo $reg["id_planc"];?>" />
      <input type="text" name="pago_dia" size="10"/>
      </td>
     
      <?php
  }
  ?>


Asi cargo los datos en una tabla..Cada fila o registro posee un text box (pago_dia) que debe actualizar en una tabla de la BD el valor cargado..Por ende cada text box tiene un id que se los asigno en el name.

Ahi les dejo la imagen de la tabla con el text_box al final. Esos son diferentes cuotas de diferentes créditos que se cobran un día, y en donde el cliente puede cargar la cantidad que quiere pagar en esa fecha que en sí se guarda en una tabla de la siguiente estructura:

Cuotas
    id_planc //Este es el id de la cuota que debe ser asignado al text_box
    id_plan //Es para relacionarse con el plan
    fecha
    monto_abonado//Aquí guardaría el valor pagado ese día por el cliente!!!

Luego la idea es que con un botón me valla a un update.php y me actualize para cada registro en la tabla, los valores cargados en los text_box.


PROMETO NO JODER POR MUCHO TIEMPO!!!!!!!!

Archivos adjuntos


  • 0

#2 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 19 diciembre 2011 - 08:35

Si se fijan en el código fuente que les dejo en la imagenn a los diferentes registros me los toma con su propio id (id_planc).. El tema es generar la consulta update que solo me grabe ese campo para cada registro que le corresponda...

Archivos adjuntos


  • 0

#3 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 19 diciembre 2011 - 11:23

Este es el script que uso para el update del campo monto_abonado en la tabla cuotas!!


<?php

require_once("../../conexion/conexion.php");

$query='UPDATE planes_cuo SET abono = ';
  for($i=1; $i <= count($_POST["id_planc"]); $i  )
  {
      $query.="('".$_POST["abono"]."') WHERE id_planc=".$_GET["id_planc"].",";
  }

  $query = substr($query,0,(strlen($query)-1)).';';

  mysql_query($query,$conexion);
 
echo "<script type=''>
alert('Los datos del Plan de Cuotas del Crédito fueron ingresados correctamente.');
window.location='index_creditos.php';
</script>";

?>


Pero me salta el error del Undefined index: id_planc!!!No estoy trayendo bien los datos por lo visto!!!

  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 08:03

Es que en el name del TextBox no lo tienes como array, fijate en el hilo pasado sobre insercion. veras que el nombre de cada TextBox es un Array, debe de quedarte asi:

<?php

$i = 0;
while ($reg=mysql_fetch_array($res))
{
$i++; //Vamos sumando
    ?>
    <tr class="registros">
      <td valing="top" align="center"><?php echo $reg["id_cred"];?></td>
      <td valing="top" align="center"><a href="../creditos/con_cre.php?id_cred=<?php echo $reg["id_cred"];?>"><?php echo $reg["cli_ape_nom"];?>[/url]</td>
      <td valing="top" align="center"><?php echo $reg["cli_domicilio"];?></td>
      <td align="center" valing="top"><?php echo $reg["cli_calles"];?></td>
      <td valing="top" align="center"><?php echo $reg["cli_barrio"];?></td>
      <td align="center" valing="top"><?php echo $reg["tipo"];?> / <?php echo $reg["cantidad"];?></td>
      <td align="center" valing="top"><?php echo $reg["import_dia"];?></td>
      <td align="center" valing="top">
      <input type="hidden" name="pago[<? echo $i; ?>]" value="<?php echo $reg["id_planc"];?>" />
      <input type="text" name="pago_dia[<? echo $i; ?>]" size="10"/>
      </td>

<?php
}
?>

  • 0

#5 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 08:35

Ene!!Me sale un error..Al ponerle el array al text_box sólo me sale un registro en caso de tener varios!!Y cuando los mando vía post con un botón para mostrarlos con un echo me sigue el Undefined index: id_planc..
  • 0

#6 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 08:38

Ahí logré que me muestre todos los registros...Pero el script del update no me funciona y me sigue tirando el Undefined index: id_planc...
  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 08:48

El asunto es mas sencillo de lo que crees mi estimado:

<?php

require_once("../../conexion/conexion.php");

  for($i=1; $i <= count($_POST["id_planc"]); $i  )
  {
      mysql_query("UPDATE planes_cuo SET abono = '".$_POST["abono"]."' WHERE id_planc= '".$_POST["id_planc"]."'", $conexion);
  }

echo "<script type=''>
  alert('Los datos del Plan de Cuotas del Crédito fueron ingresados correctamente.');
  window.location='index_creditos.php';
  </script>";

?>

  • 0

#8 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 08:55

Perdón Ene por tanta molestia!!..Pero persiste el undefined index: id_planc.. Y me tira el error en el for!!Es como si no me mandara bien los id_planc desde el formulario anterior...
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 08:56

Perdón Ene por tanta molestia!!..Pero persiste el undefined index: id_planc.. Y me tira el error en el for!!


Pos empieza el for desde 0, o sea:

for ($i=0....

Saludos.
  • 0

#10 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 09:05

Ene ya he probado con el for desde cero!!!...Me tira el mismo error pero lo replica para todos los registros que tengo en la tabla...Es decir si tengo 60 registros me sale 60 veces el undefined tanto en el for como en la linea del update...Es decir dos undefined index id_planc por cada registro!!!..Creo que empeoró...

Creo que estamos enviando mal el id_planc desde el formulario anterior y nunca llega al update.php, por eso el undefined!"!!Puede ser??
  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 09:10

Ya vi que puede ser cambialo a :

<?php

require_once("../../conexion/conexion.php");

  for($i=1;$i<=count($_POST["pago"]);$i  )
  {
      mysql_query("UPDATE planes_cuo SET abono = '".$_POST["abono"]."' WHERE id_planc= '".$_POST["id_planc"]."'", $conexion);
  }

echo "<script type=''>
  alert('Los datos del Plan de Cuotas del Crédito fueron ingresados correctamente.');
  window.location='index_creditos.php';
  </script>";

?>


Espero que ahora si, Saludos.
  • 0

#12 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 09:18

Ene ahora me replica el error para todos los registros pero en la linea del update, en la parte del WHERE id_planc= '".$_POST["id_planc"]."'....

Sigo creyendo que enviamos mal el dato de id_planc...
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 09:23

Ene ahora me replica el error para todos los registros pero en la linea del update, en la parte del WHERE id_planc= '".$_POST["id_planc"]."'....

Sigo creyendo que enviamos mal el dato de id_planc...


Si, en realidad el que va es pago no id_planc:

WHERE id_planc= '".$_POST["pago"]."'....

Saludos.
  • 0

#14 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 09:28

Ene puedes creer ahora me salta este error que nunca lo vi:

Maximum execution time of 30 seconds exceeded

Es la última función que me falta del sistema y me está matando!!!
  • 0

#15 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 09:33

Ene puedes creer ahora me salta este error que nunca lo vi:

Maximum execution time of 30 seconds exceeded

Es la última función que me falta del sistema y me está matando!!!


Tranquilo que todo tiene solucion, utiliza la funcion set_time_limit(), lo colocas justo antes del for, colocale 0 como valor para que no tenga limite de tiempo.

saludos.
  • 0

#16 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 09:41

Ene al hacer click para ir al update, se queda esperando al Localhost y se clava el sistema....Se me fué de las manos..sinceramente nosé que hacer..
  • 0

#17 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 10:10

Es como si nunca terminara el bucle del for!!Por ende cambie el for y lo dejé así:

for($i=0;$i<=count($_POST["pago"]);$i++  )


Dejándolo así logro que finalice el bucle, pero no me graba los datos...

A la línea del update le he agregado la variaable $i, pero sigue sin grabarme los datos.

mysql_query("UPDATE planes_cuo SET abono = '".$_POST["abono"][$i]."' WHERE id_planc= '".$_POST["id_planc"]."'", $conexion);

  • 0

#18 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 10:32

Ene ahí logré solucionarlo!!!! faltaban las variables [$i], agregándolas grabó perfecto!!!Ahí dejo el script por si alguien lo necesita...

<?php

require_once("../../conexion/conexion.php");

  for($i=1;$i<=count($_POST["pago"]);$i    )
  {
      mysql_query("UPDATE planes_cuo SET abonado = '".$_POST["abono"][$i]."' WHERE id_planc = '".$_POST["pago"][$i]."'", $conexion);
  }



echo "<script type=''>
  alert('Los datos del Plan de Cuotas del Crédito fueron ingresados correctamente.');
  window.location='index_creditos.php';
  </script>";

?>

Gracias Ene nuevamente!!!Digamos que el sistema lo hiciste vos!!! ;)

Lo doy por resuelto!!
  • 0

#19 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 20 diciembre 2011 - 10:34

Pues te habia dejado el asunto de manera expresa :), vaya que te tardaste en darte cuenta :D
  • 0

#20 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 mensajes

Escrito 20 diciembre 2011 - 10:37

Fue una etapa de negación en la que me fuí de mi PC!!!jajaja...Gracias Ene!!!
  • 0




IP.Board spam blocked by CleanTalk.