在$\u会话PHP从多个表中获取数据

在$\u会话PHP从多个表中获取数据,php,session,Php,Session,目前,当用户登录到系统时,我想从两个表中获取两个不同的数据。授权表为“用户”、“用户工作人员”和“用户组”。但当用户输入用户名和密码并提交时,提示“致命错误:在C:\xampp\htdocs\auditsystem\index.php的第26行对非对象调用成员函数fetch_array()” 代码如下: if($username!= "" && $password != "") { //INNER JOIN user_group_module_role ON user.user_

目前,当用户登录到系统时,我想从两个表中获取两个不同的数据。授权表为“用户”、“用户工作人员”和“用户组”。但当用户输入用户名和密码并提交时,提示“致命错误:在C:\xampp\htdocs\auditsystem\index.php的第26行对非对象调用成员函数fetch_array()”

代码如下:

if($username!= "" && $password != "")
{
//INNER JOIN user_group_module_role ON user.user_group_module_role_id = user_group_module_role.id
    $result =  $db->query("SELECT * FROM user 
                            INNER JOIN user_staff ON user.user_staff_id = user_staff.id
                            WHERE username = '$username' AND password = '$password'"); 



    if($result->num_rows == 1)
    {
        $validate = $result->fetch_assoc();

        $query1 = "SELECT * FROM usergroup WHERE id = $validate[user_group_id]";
        $result1 = $db->query($query1);
        $row1 = $result1->fetch_array();
        //change here for the authority 
        $_SESSION['user_staff'] = $validate['displayname'];
        $_SESSION['usergroup'] = $row1['user_group_type'];
        echo "<script language='javascript'>window.location='panel.php'</script>"; 
    }
    else
    {
        echo "<script>alert('Sorry, wrong username and password please check.')</script>";
    }
}
if($username!=“”&&$password!=“”)
{
//内部加入用户\组\模块\角色在用户上。用户\组\模块\角色\ id=用户\组\模块\角色.id
$result=$db->query(“从用户选择*
在user.user\u staff\u id=user\u staff.id上内部加入user\u staff
其中用户名=“$username”和密码=“$password”);
如果($result->num_rows==1)
{
$validate=$result->fetch_assoc();
$query1=“从用户组中选择*,其中id=$validate[user\u group\u id]”;
$result1=$db->query($query1);
$row1=$result1->fetch_array();
//请在这里换车
$\会话['user\u staff']=$validate['displayname'];
$\u会话['usergroup']=$row1['user\u group\u type'];
echo“window.location='panel.php';
}
其他的
{
echo“警报('对不起,用户名和密码错误,请检查')”;
}
}

您的查询格式不正确,正在失败。这使得$result1为null/false。您的查询也容易受到SQL注入的攻击

if($username!= "" && $password != ""){
//INNER JOIN user_group_module_role ON user.user_group_module_role_id = user_group_module_role.id
    $result =  $db->query("SELECT * FROM user INNER JOIN user_staff ON user.user_staff_id = user_staff.id WHERE username = '$username' AND password = '$password'"); 
    if($result->num_rows == 1){
        $validate = $result->fetch_assoc();
        $query1 = "SELECT * FROM usergroup WHERE id = {$validate['user_group_id']}";
        if($result1 = $db->query($query1)){
            $row1 = $result1->fetch_array();
            //change here for the authority 
            $_SESSION['user_staff'] = $validate['displayname'];
            $_SESSION['usergroup'] = $row1['user_group_type'];
            echo "<script language='javascript'>window.location='panel.php'</script>"; 
        } else {
            echo "<script language='javascript'>alert('SQL Error.');</script>";
        }
    } else {
        echo "<script>alert('Sorry, wrong username and password please check.')</script>";
    }
}
if($username!=“”&&$password!=“”){
//内部加入用户\组\模块\角色在用户上。用户\组\模块\角色\ id=用户\组\模块\角色.id
$result=$db->query(“选择*从用户内部加入user.user\u staff\u id=user\u staff.id,其中username='$username'和password='$password');
如果($result->num_rows==1){
$validate=$result->fetch_assoc();
$query1=“从用户组中选择*,其中id={$validate['user\u group\u id']}”;
如果($result1=$db->query($query1)){
$row1=$result1->fetch_array();
//请在这里换车
$\会话['user\u staff']=$validate['displayname'];
$\u会话['usergroup']=$row1['user\u group\u type'];
echo“window.location='panel.php';
}否则{
回显“警报('SQL错误');”;
}
}否则{
echo“警报('对不起,用户名和密码错误,请检查')”;
}
}

您的查询格式不正确,正在失败。这使得$result1为null/false。您的查询也容易受到SQL注入的攻击

if($username!= "" && $password != ""){
//INNER JOIN user_group_module_role ON user.user_group_module_role_id = user_group_module_role.id
    $result =  $db->query("SELECT * FROM user INNER JOIN user_staff ON user.user_staff_id = user_staff.id WHERE username = '$username' AND password = '$password'"); 
    if($result->num_rows == 1){
        $validate = $result->fetch_assoc();
        $query1 = "SELECT * FROM usergroup WHERE id = {$validate['user_group_id']}";
        if($result1 = $db->query($query1)){
            $row1 = $result1->fetch_array();
            //change here for the authority 
            $_SESSION['user_staff'] = $validate['displayname'];
            $_SESSION['usergroup'] = $row1['user_group_type'];
            echo "<script language='javascript'>window.location='panel.php'</script>"; 
        } else {
            echo "<script language='javascript'>alert('SQL Error.');</script>";
        }
    } else {
        echo "<script>alert('Sorry, wrong username and password please check.')</script>";
    }
}
if($username!=“”&&$password!=“”){
//内部加入用户\组\模块\角色在用户上。用户\组\模块\角色\ id=用户\组\模块\角色.id
$result=$db->query(“选择*从用户内部加入user.user\u staff\u id=user\u staff.id,其中username='$username'和password='$password');
如果($result->num_rows==1){
$validate=$result->fetch_assoc();
$query1=“从用户组中选择*,其中id={$validate['user\u group\u id']}”;
如果($result1=$db->query($query1)){
$row1=$result1->fetch_array();
//请在这里换车
$\会话['user\u staff']=$validate['displayname'];
$\u会话['usergroup']=$row1['user\u group\u type'];
echo“window.location='panel.php';
}否则{
回显“警报('SQL错误');”;
}
}否则{
echo“警报('对不起,用户名和密码错误,请检查')”;
}
}

1)您必须在双引号内的
{}
中包装数组。2) 您希望将索引用单引号括起来:`$query1=“SELECT*FROM usergroup WHERE id={$validate['user\U group\U id']}”;您的第二个查询失败,并且由于您没有检查,
$result1
为null/false,并且没有成员函数。可能重复的1)可能重复的1)您必须将数组包装在双引号内的
{}
。2) 您希望将索引用单引号括起来:`$query1=“SELECT*FROM usergroup WHERE id={$validate['user\U group\U id']}”;您的第二个查询失败,并且由于您没有检查,
$result1
为null/false,并且没有成员函数。Hi bro的可能副本的可能副本,是否可以添加另一个查询以插入日志记录?$query=“插入用户日志记录(用户名、ip地址)值(“$username”,“$ip”)”;$result=$db->query($query);您将无法从
输入
查询中获得结果集。但是可以,您可以以相同的方式执行另一个查询:
$db->Query($Query)你好,兄弟,如果我想为select添加另一个查询,该怎么办?代码正确吗?如果($result->num_rows==1){$validate=$result->fetch_assoc();$query1=“从用户组中选择*,其中id={$validate['user_group_id']}”;$query2=“从用户角色中选择*,其中id={$validate['user_group_模块_角色_id]}”;如果($result1=$db->query1->query1)){$row1=$result1->fetch u数组();//在此处更改权限$_会话['user_staff']=$validate['displayname'];$_会话['user_group']=$row1['user_group_type'];如何添加“if”方法/我认为这应该是它自己的问题,或者您需要进一步研究。此外,您缺少一个引号。应该是:
$validate['user\u group\u module\u role\u id']
Hi bro,是否可以添加另一个查询以插入到日志记录中?$query=“插入到用户日志记录(username,ipaddress)值('$username','$ip')”;$result=$db->query($query);您不会从
输入查询中获得结果集。但是,是的,您可以以相同的方式执行另一个查询:
$db->query($query);
嗨,兄弟,如果我想为select添加另一个查询,该如何处理?代码是否正确?如果($result->num_rows==1){$validate=$result->fetch_assoc();$query1=“select*from user_group,其中id={$validate['user\u group\u id']};$query2=“从user\u角色中选择*,其中id={$validate['user\u group\m