03/05/2005, 13:03
|
| | | Fecha de Ingreso: noviembre-2004 Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años, 2 meses Puntos: 34 | |
Bueno, tenes dos falencias en lo que contas. Una, la tabla de relacion si tiene un autoincrement, es de esa tabla, no del usuario, O sea, tenes tres campos, un autoincrement (por si queres referenciar a un unico registro, para hacerlo mas simple, pero tampco es necesario), un int para el usuario, y un int para la actividad.
Cuando grabas vos lo haces por usuario, por lo que tenes que borrar TODOS los registros de esa tabla que pertenezcan al usuario ese, por ejemplo:
"delete from pers_act where persona = '".$codigoUsuario."' "
Una vez esto haras tu foreach sobre los checks y guardaras todo nuevamente.
Con el tema de la edicion, lo que haces es algo asi:
$codigo = 2; #Este seria el usuario que estas editando
$sql = "select
(CASE WHEN r.actividad IS NULL THEN 0 ELSE 1 END) chequeado,
a.codigo,
a.nombre,
from actividades a
left outer join pers_act r on r.actividad = a.codigo and r.usuario = '".$codigo."'
"
Este te dara todas las actividades, y un campo que tendrá, si esta elegida 1, y sino 0. Entonces, cuando hagas el while haras un if del campo, y si es 1 checkearas el check.
Espero te sirva.
Última edición por nicolaspar; 03/05/2005 a las 13:10 |