Pogledajte određenu poruku
Staro 02. 09. 2010.   #5
vidak
Banned
Expert
 
Datum učlanjenja: 29.09.2007
Poruke: 458
Hvala: 131
71 "Hvala" u 44 poruka
vidak is on a distinguished road
Default

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
vidak je offline   Odgovorite uz citat