Php 存在多个表时最有效的登录方式

Php 存在多个表时最有效的登录方式,php,mysql,login,registration,Php,Mysql,Login,Registration,我用的是一张教师登记表和一张学生登记表。每个字段中有十个字段,名字、姓氏、用户名、密码等类似,而部门(教师有7个,学生有3个)和电子邮件ID(教师有不同的域名扩展,学生不同)则不同。我用两张桌子,一张给老师,一张给学生 现在,我知道我可以使用一个登录表单,使用JOIN属性查询这两个表并让它们登录。但我想知道这个方法是否有效,因为使用了两个表 或者这种方法更有效:在reg表单中,我放置了一个单选按钮来选择教师或学生,根据选择的内容,其余字段会发生变化,即,如果我选择教师,会显示7个部门,或者如果我

我用的是一张教师登记表和一张学生登记表。每个字段中有十个字段,名字、姓氏、用户名、密码等类似,而部门(教师有7个,学生有3个)和电子邮件ID(教师有不同的域名扩展,学生不同)则不同。我用两张桌子,一张给老师,一张给学生

现在,我知道我可以使用一个登录表单,使用JOIN属性查询这两个表并让它们登录。但我想知道这个方法是否有效,因为使用了两个表

或者这种方法更有效:在reg表单中,我放置了一个单选按钮来选择教师或学生,根据选择的内容,其余字段会发生变化,即,如果我选择教师,会显示7个部门,或者如果我选择学生,则只会显示其中的3个。这样,我只能使用一张桌子,至少我想是这样

或者另一种可能性是,我使用两个表格,但两个登录表单,一个用于教师,一个用于学生,我知道这是一个简单的解决方法,但作为一名Comp-Sci学生,我想选择所有有效的方法


附言:老师的角色将与学生在网站上的角色完全不同。老师和学生会有很多活动,他们是完全不同的。维护一个表是一个好办法吗?

我想说,教师和学生都是用户,但教师拥有更高的权限,就像管理员一样

因此,我只为
用户使用一个表,并有一个属性列来指示他们是什么类型的

登录后,您可以向页面返回类型变量,以确定要显示的字段

你甚至不需要单选按钮来指示类型。只要有一个用户名和密码字段。然后,在对它们进行身份验证后,检索type属性并相应地加载表单

您的PHP页面可能如下所示:

<?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"; 
    }
?>


您如何存储部门?您能否显示您现在拥有的两个表的
descripe
输出?我计划通过获取下拉值来存储它们。我现在的桌子非常普通,是用phpmyadmin制作的。我现在要设计登录和注册的东西,所以我需要知道最有效的方法,这样我就可以继续设计它,如果我有进一步的疑问,我会回来给大家。但是如果你想要一个样品看看,让我知道,我会给你看一个!学生表也类似。部门值将从所选的下拉选项中获取。一个教师可以从7个选项中选择一个,一个学生可以从3个池中选择。你最好考虑使用<代码>联合<代码>,而不是<代码>连接< /代码>。但这些人解决了我的问题,并帮助我用一张桌子自己解决了问题。但还是要谢谢你,本杰明,如果我以后遇到任何这样的问题,我会记住你的建议:)你的意思是,使用一个表格,根据老师或学生的情况相应地加载表格。但是,如果没有单选按钮或下拉列表,我如何区分它们呢?它们是相互排斥的,对吗?每个人只能是老师或学生,对吗?如果是这样,请从用户表中检索所提供用户名的记录,验证其密码,然后将指示他们是学生还是教师的变量返回到页面。是的,他们是互斥的。是的,我明白你的意思。我只是问,在reg字段中,我如何要求他们指定他们是教师还是学生,因为你说不需要单选按钮。另外,我已经告诉过你,两个字段对他们来说是不同的。例如,一名学生需要与emailid@univstu.com老师需要使用emailid@univteach.com! 这就是我的部门人员希望注册的方式!好吧,我有点明白你说的。非常感谢。我会试试这个,如果我有任何问题,我会回复你:)是的,我尝试了这个,我让它工作,但新的要求迫使我使用两个表,两个注册表格和两个注册。你的回答帮助我获得了一些知识,更重要的是:)非常感谢!