Pogledajte određenu poruku
Staro 01. 09. 2010.   #2
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

U tabelu user dodaš polja tipa checkbox1 enum('Y'), checkbox2 enum('Y') , checkbox3 enum('Y') ...

HTML checkbox-ove povežeš sa poljima i pri insert ili update pustiš ih sve u tabelu upiše. I to svaki put.
To je najjednostavnije za upis a onda moraš da praviš u programu logiku prikaza.


drugi, duži način je da napraviš tabele

create table dozvola(dozvola_id tinyint(1) unsigned not null primary key auto_increment, dozvola varchar(255) unique);
i
create table user_dozvola (user_id int unsigned not null, dozvola_id tinyint(1) unsigned not null, dozvolio enum('Y', 'N'));

Iz tabele dozvola: SELECT dozvola_id, dozvola FROM dozvola
Svaka dozvola u <p>Dozvola</p> , svaki checkbox dobije ime dozvola_id


Tabela user_dozvola je relacija više na više ali definišeš da je unique index nad poljima(user_id, dozvola_id)
pa nije moguće da user ima više puta upisanu istu dozovolu;

onda

INSERT INTO user_dozvola VALUES (:user_id, :dozvola_id, :dozvolio) ON DUPLICATE KEY UPDATE
user_id = :user_id, dozvola_id = :dozvola_id, dozvolio = :dozvolio;

Onda je lako selektovati samo ono što je user dozvolio
SELECT * FROM user_dozvola WHERE dozvolio = 'Y';
vidak je offline   Odgovorite uz citat
"Hvala" vidak za poruku: