登录2数据库表的php if else条件

登录2数据库表的php if else条件,php,mysql,database,Php,Mysql,Database,大家好,我想这是一个很好的问题 我正在尝试建立一个登录页面。但我有一个问题我的数据库中有2个用户表第一个用户表适用于普通用户,第二个用户表适用于vip用户 下面的代码用于普通用户。我想确定电子邮件和密码是否为vip用户,然后打开vip用户配置文件。php如果电子邮件和密码不是vip用户,则检查普通用户表,如果有电子邮件和密码,然后打开普通用户配置文件。php我该怎么做。有人能帮我吗 我可以在登录php代码中添加什么代码 我的密码是这个 <?php include("includes/

大家好,我想这是一个很好的问题

我正在尝试建立一个登录页面。但我有一个问题我的数据库中有2个用户表第一个用户表适用于普通用户第二个用户表适用于vip用户

下面的代码用于普通用户。我想确定电子邮件和密码是否为vip用户,然后打开vip用户配置文件。php如果电子邮件和密码不是vip用户,则检查普通用户表,如果有电子邮件和密码,然后打开普通用户配置文件。php我该怎么做。有人能帮我吗

我可以在登录php代码中添加什么代码

我的密码是这个

<?php  
 include("includes/connect.php");

 if(isset($_POST['login'])){

   $email = $_POST['email'];
   $password = $_POST['pass'];

    $check_user = "SELECT * FROM users WHERE password='$password' AND email='$email'";

     $run = mysql_query($check_user);

     if(mysql_num_rows($run)>0) {

        echo"<script>window.open('normal_user_profile.php','_self')</script>";

     }
     else {
       echo"<script>alert('email or password is incorrect!')";

     }
   } 
?>

如果坚持将信息存储在两个表中,仍然可以使用一个查询获取数据。有很多方法可以做到这一点,但这里有一种你可能会觉得有趣:

select
  sum(usertype) as usercheck
from
  ( select nu.username, nu.password, 1 as usertype 
    from NormalUser nu
  union all 
    select vu.username, vu.password, 2 
    from VipUser vu
) u
where
  u.username = '$username' and 
  u.password = '$password'
此查询将返回一个整数字段,该字段可以具有以下任一值:

  • null:不存在用户名/密码的组合
  • 1:用户是普通用户
  • 2:用户是VIP用户
  • 3:两个表都包含具有相同密码的用户
请注意,在1和2的情况下,仍然可能存在相同的用户名,但密码不同

现在,为了解决这个问题,您可以将所有用户放在一个表中,并给他们一个用户类型。您可以创建许多可以保留为空的额外列。如果您真的想将该信息存储在一个单独的表中(这有很好的参数),您仍然可以创建一个包含基本用户信息(如用户名和密码)的表。然后,在VipUsers表中,不存储用户名和密码,只存储用户id和其他信息。此用户id应该是
Users
表和
VipUsers
表的主键。此外,它应该是VipUsers中的外键,引用用户,这样,如果没有基本的用户信息,就不能有孤立的VipUser记录


但是,我会选择一个带有类型和可空字段的表。我觉得这与你目前的技能水平也很匹配。

嗨,我想这项技术对你有帮助。你的问题我都看过了。您有两种类型的用户。但是,用户在中有不同的情况。这是一个真实的商业名称。你需要集中精力*如果用户在登录您的网站时使用此名称,则其profil会自动打开vip_user_profile.php。当然,您必须在代码中执行此操作。*


这对你来说很容易使用。对于您的vip用户
标题(“vip_user_profile.php”)
标题(“normal_user_profile.php”)

您的代码易受sql注入攻击。我真诚希望您不要存储实际密码,而是存储哈希。还有一个问题,为什么不只拥有一个用户表,并在其中添加一个用户类型列,指明用户是普通用户、VIP用户还是未知的未来类型用户?为什么不使用一个表并为访问级别提供一个字段。您可以使用不同的表单引用一个表。@EcoWebtr:事实上,您的代码有很多错误。您的数据库设计是错误的(无论您如何激烈地捍卫它),您非常容易受到SQL注入攻击,您使用的库存在已知缺陷,并且您以危险和不负责任的方式存储敏感信息。这里有很多问题需要解决。对于眼前的问题,如果您坚持在两个不同的表中存储相同的数据,那么只需进行两个单独的SQL查询,每个表一个查询。除此之外,这里有太多的问题需要解决,而不是一个堆栈溢出的答案所能提供的。您能帮我吗?我希望我添加了这个答案:)对不起,亲爱的@GolezTrol i创建了2个表。vipuuser的第一个表是normaluser的secong表。我有2个注册表格第一个注册表格为normaluser第二个注册表格为vipuser。Vip用户注册页面包含例如:姓名、姓氏、商号、电子邮件、EmailReach、密码、国家和城市。普通用户注册表单包含姓名、姓氏、电子邮件、EmailReach、密码、男性、女性、城市和国家。普通用户配置文件页面与vipuser配置文件页面不同。普通用户类型是0 vip用户类型是1用于不同的配置文件页面。我说创建两个表。首先,第一个表在电子邮件中有密码并键入此表类型适用于普通用户。第二个表中有商业名称、姓名、姓氏、城市、国家、男性和女性。而且这个表有一个类型,这个类型是给vipuser的。类型是1。这是小蛇队的1分。我想当vipuser注册时,他的类型自动为1,当普通用户注册时,他的用户类型为0。我该怎么做呢。