Php mysql help please

Hello i was wondering how i should have this mysql table setup to select assign the values. Eg.

Table 1 users
Id - User - Permission
01 Lewis 1,2
02 Tom 2,3

Table 2 permissions
Id - Permission
1 Access to page 1
2 Access to page 2
3 Access to page 3

So then i can check something e.g. select all users with permission = 1

Thanks
Lewis

A better (more normalized) structure would be

[code]user
id, name

permission
id, name

user_permission
user_id, permission_id[/code]

Then you can do

SELECT u.* FROM `user` AS u LEFT JOIN user_permission AS up ON up.user_id = u.id WHERE up.permission_id = 1

[code]CREATE TABLE user
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL
);

INSERT INTO user
(name)
VALUES
(‘Lewis’),
(‘Tom’);

CREATE TABLE permission
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL
);

INSERT INTO permission
(name)
VALUES
(‘Access to page 1’),
(‘Access to page 2’),
(‘Access to page 3’);

CREATE TABLE user_permission
(
user_id int NOT NULL,
permission_id int NOT NULL
);

INSERT INTO user_permission
(user_id, permission_id)
VALUES
(1, 1),
(1, 2),
(2, 2),
(2, 3);
[/code]

Ah ok that looks great :slight_smile: thanks

Sponsor our Newsletter | Privacy Policy | Terms of Service