Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2005, 16:52
al3jo
 
Fecha de Ingreso: junio-2004
Mensajes: 60
Antigüedad: 20 años, 5 meses
Puntos: 1
consulta tablas relacionadas y mostrar checkboxs activos o no

Hola a todos

La consulta es:
Tengo una tabla de grupos: grupos(idg, nombre)
Una tabla de usuarios: usuarios (idusu,apellido..etc)
y una tabla de relaciones de grupos: relac_grupos (idrg,id_re_idusu, re_idg, flag) en esta ultima tabla intento llevar la relación de los grupos a los que pertenece cada usuario, es decir.. un usuario puede pertenecer a varios grupos, ej:

idrg. re_idusu (de la tabla de usuarios) re_idg (de la tabla grupos) flag
1 1 1 s
2 1 2 s
3 1 5 s
4 2 1 n

La ultima columna (flag) la he puesto para chequear si esta activado o no. Fue un intento de ultimo momento, je.

Lo que intento hacer es mostrar una consulta para la modificación de los datos del usuario, donde a través de checkboxes (marcados o no) me muestre "todos los grupos existentes", pero solamente marcados los que pertenecen a ese usuario.

<?
$query1=" SELECT * FROM relac_grupos";

$result1=mysql_query($query1);
echo'<p><u>Grupos:</u><br>';
while ($row=mysql_fetch_array($result1)) {

echo'<input type="checkbox" name="grupo" value="s" <?=CheckA("s", $row["flag"]);?>'.$row["nombre"].'</input><br>';
}



mysql_free_result($result1);



function CheckeA($sValor1, $sValor2) {
if ($sValor1 == $sValor2) {
$sSale = 'checked';
}

return $sSale;
}

?>

Bueno el problema es como mostrar los datos que tengo en la db con sus respectivos estados (marcados o no), pero teniendo en cuenta la tabla intermedia donde se relacionan (usuario, grupos).


Otro Intento:
Tambien intenté hacer q solo me muestre los datos que le corresponden a ese usuario:

$query2 ="SELECT * FROM relac_grupos LEFT JOIN grupos ON relac_grupos.re_idg = grupos.idg AND relac_grupos.re_idusu = '$idusu'";

aqui si me muestra y tengo todos los datos pero solo los que corresponden a un usuarios que tienen esos grupos..


Gracias a todos... desde ya... por meterse en este bardo...



al3jo