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

My ERD:

user table
-id(PK),user_type,user_name,user_permission

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

session table
id(PK),session_name,day_id(FK),hour_id(FK),room_id(FK)

day table
id(PK),day_name

hour table
id(PK),start_time,end_time

room table
id(PK),start_time,end_time

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