简体   繁体   English

PHP内部连接超过2个表

[英]php inner join more than 2 tables

I have 2 tables one for the login id, username, password and rank and the other one is for account status. 我有2个表,一个用于登录ID,用户名,密码和等级,另一个用于帐户状态。 I need to join the tables to execute only all the active accounts. 我需要加入表以仅执行所有活动帐户。 Everytime I try my code in phpmyadmin it works fine but in my system it won't work. 每次我在phpmyadmin中尝试我的代码时,它都能正常工作,但在我的系统中,它将无法正常工作。 Is there anything problem with my code? 我的代码有什么问题吗? Btw. 顺便说一句。 rank is for account verfication if you are an administartor or student. 如果您是管理员或学生,则等级用于帐户验证。

$sql = "SELECT a.login_id,username,password,rank,b.status FROM login2 as a    INNER JOIN login_stat2 as b ON a.login_id = b.login_id WHERE username     ='".$username."' AND password='".$pass."' AND b.status='ACTIVE'";

$result = mysqli_query($con,$sql)or die(mysqli_error($con));
while($row = mysqli_num_rows($result));
session_regenerate_id();
        $member = mysqli_fetch_assoc($result);
        $_SESSION['SESS_MEMBER_ID'] = $member['login_id'];
        $_SESSION['SESS_NAME']      = $member['username'];
        $_SESSION['SESS_RANK']      = $member['rank'];


        if($member['rank']=='administrator'){
        header("location: login_reg.php");
        }

        else if($member['rank']=='student'){
        header("location: student.php");
        }
        else if($member['rank']=='candidate'){
        header("location: candidate.php");
        }

        }else{
        print "Incorrect username or password";

            session_write_close();
$sql = "SELECT a.login_id,a.username,a.password,a.rank,b.status FROM login2 as a INNER JOIN login_stat2 as b ON a.login_id = b.login_id WHERE a.username     ='".$username."' AND a.password='".$pass."' AND b.status='ACTIVE'";

$result = mysqli_query($con,$sql)or die(mysqli_error($con));

if(mysqli_num_rows($result)) {
   echo 'Login success';
} else {
   echo 'invalid username and password';
}

The mysqli_num_rows() function returns the number of rows in a result set. mysqli_num_rows()函数返回结果集中的行数。

Updated Code 更新的代码

//create connection
$conn = new mysqli('localhost', 'root', '', 'demo');

//check connection
if($conn->connect_error) {
  die("connection failed: ".$conn->connect_error);
}
echo "Connection Successful <br>";

$sql = "SELECT a.login_id,a.username,a.password,a.rank,b.status FROM login2 as a INNER JOIN login_stat2 as b ON a.login_id = b.login_id WHERE a.username ='admin' AND a.password='admin' AND b.status='ACTIVE'";

$result = mysqli_query($conn,$sql) or die(mysqli_error($con));
if(mysqli_num_rows($result)) {
    echo "login";
} else {
    print "Incorrect username or password";
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM