Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/10/2011, 07:41
Avatar de Patriarka
Patriarka
 
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: ¿Como editar valores guardados en BD con checbox?

es muy dificil mantener tu modelo de datos
el standard seria a asi:
PROFESOINALES
prof_id
prof_name

ACIVIDADES
act_id
act_descripcion

PROFESIONALES_ACTIVIDADES
prof_id
act_id

en la tabla PROFESIONALES_ACTIVIDADES simplemente guardo la relacion
entre todas las actividades de un profesional.
Entonces va este ejemplo:
Código PHP:
Ver original
  1. <form action="procesa.php">
  2.     <input type="hidden" name="profesional" value="<?php echo $Profesional->getId(); ?>">
  3.     <?php
  4.     $Actividades = mysql_query("SELECT * FROM ACTIVIDADES");
  5.     while ($Actividad = mysql_fetch_object($Actividades)) {
  6.     ?>
  7.         <input name="actividades[]" type="checkbox" value="<?php echo $Actividad->act_id; ?>"> <?php echo $Actividad->act_descripcion; ?><br />
  8.     <?php
  9.     }
  10.     ?>
  11.     <input type="submit" value="enviar">
  12. </form>
  13.  
  14. procesa.php
  15. <?php
  16. echo '<pre>';
  17. var_dump($_REQUEST);
  18. echo '</pre>';
  19.  
  20. $id_profesional=$_REQUEST['profesional'];
  21. /*
  22.  * primero elimino todas las relaciones si las hay
  23.  */
  24. $sql="DELETE FROM PROFESIONALES_ACTIVIDADES where prof_id = $id_profesional";
  25. $res=mysql_query($sql);
  26. /*
  27.  * inserto los nuevos datos
  28.  */
  29. foreach ($_REQUEST['actividades'] as $key => $value) {
  30.     $sql="INSERT INTO PROFESIONALES_ACTIVIDADES VALUES ($id_profesional,$value)";
  31.     $res=mysql_query($sql);
  32. }
  33. /*
  34.  * aclaracion muy importante:
  35.  * en este tipo de operacion no existe el UPDATE
  36.  */
  37. ?>