eeee
bilo mi interesantno pa sam sebi napravio na sajtu
create table saglasnost(saglasnost_id tinyint(1) unsigned not null primary key auto_increment, saglasnost varchar(255) not null unique) engine = innodb;
insert into saglasnost values (null, 'Sistemska obaveštenja'), (null, 'Novosti'), (null, 'Reklamna obaveštenja');
create table user_saglasnost(user_id int unsigned not null, saglasnost_id tinyint(1) unsigned not null, saglasan enum('on')) engine = innodb;
alter table user_saglasnost add foreign key (user_id) references user(user_id) on delete cascade;
alter table user_saglasnost add unique(user_id, saglasnost_id);
Za unos saglasnosti za postojeće usere - 1,2,3 su saglasnost_id;
insert into user_saglasnost(user_id, saglasnost_id, saglasan) select user_id, 1, 'on' from user;
insert into user_saglasnost(user_id, saglasnost_id, saglasan) select user_id, 2, 'on from user;
insert into user_saglasnost(user_id, saglasnost_id, saglasan) select user_id, 3, 'on' from user;
Upiti nad saglasnoscu.
SELECT saglasnost_id, saglasnost FROM saglasnost // dobiješ sve redove
SELECT saglasnost_id, saglasan FROM user_saglasnost WHERE saglasnost_id = :saglasnost_id AND user_id = :user_id / povuces saglasnost user-a za svaku saglasnost u bazi.
if($saglasan['saglasan']) return "checked"; else return null; // da vrati umesto on, checked da bi polje bilo ispisano
primer checbox polja // uz template sistem
<input type=checkbox name='Saglasnost_id{$SAGLASNOST_ID}' id='Saglasnost_id{$SAGLASNOST_ID}' {$SAGLASAN}>
i to je to