Q:

Most efficient way to login when multiple tables exist

I was using a registration form for teachers and one for students. There are ten fields in each, first name, last name, username, password, etc being similar whereas departments (teachers have 7, students have 3) and email ids (teachers have a different domain extension and students different) being different. I am using two tables, one for teachers and one for student. 
Now, I know I can use one login form, query against these two tables using the JOIN property and make them login. But I want to know if this method is efficient because two tables are being used. 
Or is this method more efficient: In the reg form, I put a radio button to select teacher or student and depending on what one chooses the remaining fields change, i.e, if I choose teacher, 7 departments show up or if I choose student only 3 of them show up. In this way, I have to use one table only, atleast I guess so. 
Or another possibility is I use two tables but two login forms, one for teacher and one for student, I know this is the easy way out but being a Comp Sci student I want to choose the efficient method of all. 
P.S: The teacher's role is going to be completely different from the student's in the site. And there will be lot of activities for the teachers and students, they are completely different. Will maintaining one table be a good bet?

A:

I would say that both teachers and students are users, but teachers have higher privileges, much like an administrator.
As such, I would only use 1 table for users and have an attribute column to indicate what type they are.
Once they login, you can return a type variable to your page to determine what fields to display.
And you really don't even need a radio button to indicate the type. Just have a username and password field. Then once they are authenticated, retrieve the type attribute and load your form accordingly.
Your PHP page might look like this:
<?php
    if(isset($_POST['username'])) {
        $user = $_POST['username'];
        $password = $_POST['password'];
        $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

        $query = "SELECT * FROM tblUser WHERE userid=" . $user;

        //Execute SQL
        if($mysqli->query($query) === TRUE) {
            if ($password == $row['password']) {
                $userType = $row['type'];
                $mysqli->close();
                echo $userType;
            else { echo "incorrect password"; }

        } else { echo "SQL execution error"; }
    } else { 
        echo "invalid username string"; 
    }
?>

