Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2010, 17:34
afelixnieto
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Lista completa de checkbox y marcar los seleccionados

Buenas…
Necesito resolver este problemilla: Lista completa de checkbox desde mysql y marcar los seleccionados
  • Dispongo de 3 tablas MySQL:
Lista_empresas, lista_servicios, relación_empresas_servicios

Cada empresa puede tener disponible varios tipos de servicios, para tal fin tenemos la tabla que mantiene la relación de empresas con los tipos de servicios.

Partiendo de que estamos en un formulario de una determinada empresa para modificar datos. A dicha empresa le mostramos todos servicios disponibles de la tabla “lista_servicios” en una lista de <input type="checkbox"> y queremos que salgan marcados los servicios que tiene activos.

Esto es la estructura de las 3 tablas:
Lista_empresas: id_empresa |nombre_empresa
Lista_servicios: id_servicio | nombre_servicio
Relación_empresas_servicios: id_r | id_empresa | id_servicio


Este es el código PHP que tengo hasta el momento sin lograr el resultado final:
Código PHP:
<?php
 
include('conexio.php');

 echo 
"Empresa por URL: ".$_GET[id_empresa]."<hr>";
 
 
$sql =  " SELECT * FROM tipo_servicios ORDER BY nombre_servicio "  ;
$res mysql_query($sql);
while(
$r mysql_fetch_array($res)){


   
$sql2 " SELECT * FROM relacion_empresas_servicios WHERE id_empresa = '$_GET[id_empresa]' ";
   
$res2=mysql_query($sql2);
   while(
$r2=mysql_fetch_array($res2)){

        if( 
$r2[id_empresa] == $_GET[id_empresa]) { $checked "checked";} else { $checked ""; }

        } 
// de while r2
      

 
$num=$num+1;
  print(
"
<input type=\"checkbox\" name=\"actividades[',$num,']\" value=\"$r[id_servicio]\" class=\"corto\" $checked /> <label for=\"$r[nombre_servicio]\">$r[nombre_servicio]</label> <br />
       "
);
if(
$num%2==0) { print("<br />"); }


              

// de while $r
?>
He probado distintas consultas MysQL trabajando con uniones sin obtener el resultado deseado, en unos casos me salen los tipos de servicios repetidos, en otros solo sale el último servicio marcado, en otros me salen todos, en otros ninguno… estoy dando palos de ciego sin lograr resolver el problema.

Espero que se comprenda el objetivo final.