Foros del Web » Programando para Internet » PHP »

¿Como editar valores guardados en BD con checbox?

Estas en el tema de ¿Como editar valores guardados en BD con checbox? en el foro de PHP en Foros del Web. Buenos días compañeros!! Tengo un problemilla... no se si es por falta de nociones o por mala organización, os explico. Tengo 3 tablas; Denominada "profesionales" ...
  #1 (permalink)  
Antiguo 20/10/2011, 04:23
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
¿Como editar valores guardados en BD con checbox?

Buenos días compañeros!!

Tengo un problemilla... no se si es por falta de nociones o por mala organización, os explico.

Tengo 3 tablas;
  1. Denominada "profesionales" que es la principal.

  2. Denominada "actividades" y en esta es donde figuran todas las actividades a mostrar.
    Su estructura es la siguiente:


    y su contenido:


  3. Denominada "profesionales_actividades" y en es donde almaceno los valores seleccionados de los checkbox, si ha sido seleccionado, con "1" y si no, con "0". Esta tabla esta relacionada con la de profesionales con el campo "idempresa" (No aparece en la imagen capturada de pantalla por no hacerlo muy largo ya que hay muchas actividades.)

    Su estructura es la siguiente:


    y su contenido:

Y ahora viene mi problema. Estoy relizando un area de gestión para poder modificar entre otros datos, los mencionados arriba, es decir, las actividades seleccionadas. Para ello me gustaría que con un bucle me mostrara todas las actividades de la siguiente forma:

y que si la actividad hubiese sido seleccionada se mostrase "checked", y si realiza algún cambio se guarde.

La gran dificultad que veo es como coordinar ambas tablas para que si selecciona la actividad "aerobahia" guardar el valor seleccionado (1) en la tabla "profesionales-actividades" en su respectivo lugar. Nose si me explicado con claridad...

Espero vuestra ayuda y si puedo aportar más información, no dudéis en pedírmela. Un saludo muy grande y gracias de antemano.!!
  #2 (permalink)  
Antiguo 20/10/2011, 07:41
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 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. ?>

Etiquetas: bd, tabla
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 15:00.