I am developing a standard Student timetable system to learn php /mysql in depth. I've few questions if somebody can assist.

Background info: Each course can have multiple sessions identified or tracked by 'room' , 'hour', 'day'. Students can enroll in 1 or many course.

Here are the standard requirements:

1) Students and staffs able to login, view and print their timetable
2) Staff are able to see which students courses clashes.
2) Admin can do regular things like edit, delete etc


user table

course table
-id(PK), course_code,course_description,session_id(FK)

session table

day table

hour table

room table

timetable table
id(PK), user_id(FK),course_id(FK),session_id(FK),day_id(FK),hour_id(FK),room_id(FP)

My Question
1) Is my ERD correct
2) Should staff,staff, admin be in 1 table (users table) distinct by user_permission
3) Stuck on this -> How to get the data from the mysql table and display it.
Rows should have time in interval of 1 hour , e.g. 9-10, 10-11, 11-12 etc
Columns should have Day name e.g Mon, Tue, Wed