如何基于会话变量php从两个表中获取数据?
事实上,我试图在当前会话的基础上显示数据库中两个表中的数据,基本上,我已经阅读了很多关于如何解决这个问题的文章和论坛,但到目前为止我仍然面临着这些问题。这些是我已经做过的数据和代码:如何基于会话变量php从两个表中获取数据?,php,mysql,session,Php,Mysql,Session,事实上,我试图在当前会话的基础上显示数据库中两个表中的数据,基本上,我已经阅读了很多关于如何解决这个问题的文章和论坛,但到目前为止我仍然面临着这些问题。这些是我已经做过的数据和代码: <?php include('db.php'); $sql="SELECT* FROM users INNER JOIN details ON users.id= details.id LIMIT 1 WHERE users.id ='$loggedin_id' " ; $result=mysqli_qu
<?php
include('db.php');
$sql="SELECT*
FROM users
INNER JOIN details ON users.id= details.id LIMIT 1 WHERE users.id ='$loggedin_id' " ;
$result=mysqli_query($db,$sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
?>
它将显示我数据库中的所有数据,但我只需要当前会话中的数据
这是我的session.php文件:
<?php
include('db.php');
session_start();
$user_check=$_SESSION['sess_username'];
$ses_sql=mysqli_query($db,"select username,id from users where username='$user_check' ");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$loggedin_session=$row['username'];
$loggedin_id=$row['id'];
$role = $_SESSION['sess_userrole'];
if(!isset($loggedin_session) && $role!="user"){
header('Location: index.php?err=2');
}
?>
我认为您的查询应该如下所示:
$sql = "SELECT * FROM users
INNER JOIN details ON users.id= details.id WHERE users.id = $loggedin_id ";
我认为您的查询应该如下所示:
$sql = "SELECT * FROM users
INNER JOIN details ON users.id= details.id WHERE users.id = $loggedin_id ";
这样更改您的查询
$sql="SELECT*
FROM users
INNER JOIN details ON users.id= details.id WHERE users.id ='$loggedin_id' LIMIT 1" ;
这样更改您的查询
$sql="SELECT*
FROM users
INNER JOIN details ON users.id= details.id WHERE users.id ='$loggedin_id' LIMIT 1" ;
您可以忽略内部联接,并使用如下程序步骤:
- 步骤1:只需在所有页面中启动会话-Session_Start()李>
- 步骤2:在数据库中为会话创建列,例如sessionCheck
- 步骤3:在注册页面上启动会话并使用MySqli last insert
功能如下:
$\u session[“anything”]=mysqli\u insert\u id(您的db连接变量)代码>
然后将此会话Id存储到变量中(如-$sessionCheck=$\u session[“anything”];
在执行Insert时,将此变量的值插入数据库中会话列上的所有列。让会话列按int和unique排序
- 步骤4:在显示页面上使用专门嵌套的控件结构
如果不是内部连接
- 步骤5:所有插入将$\u sessionCheck的值插入
sessionCheck除了注册页面之外的所有表(因为
会话id最初是从注册页面获取的,所以您不需要
再次插入到“注册”中)
- 步骤6:所有选择都应与
关联,其中sessionCheck=$sessionCheck
这在我的过程PHP7(MySqli)和MySQL 5上非常适用。您可以忽略内部连接,使用如下过程步骤:
- 步骤1:只需在所有页面中启动会话-Session_Start()
- 步骤2:在数据库中为会话创建列,例如sessionCheck
- 步骤3:在注册页面上启动会话并使用MySqli last insert
功能如下:
$\u session[“anything”]=mysqli\u insert\u id(您的数据库连接变量);
然后将此会话Id存储到变量中(如-$sessionCheck=$\u session[“anything”];
在执行Insert时,将此变量的值插入数据库中会话列上的所有列。让会话列按int和unique排序
- 步骤4:在显示页面上使用专门嵌套的控件结构
如果不是内部连接
- 步骤5:所有插入将$\u sessionCheck的值插入
sessionCheck除了注册页面之外的所有表(因为
会话id最初是从注册页面获取的,所以您不需要
再次插入到“注册”中)
- 步骤6:所有选择都应与
关联,其中sessionCheck=$sessionCheck
这在我的过程PHP7(MySqli)上非常适合我和MySQL 5您的查询格式不正确…我想..限制在何处之前。我想您需要一个子查询。一些MySQL wiz可以帮助您解决问题。警告:当使用mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了一个严重的错误。切勿将de>$\u POST
,$\u将
或任何用户数据直接输入到查询中,如果有人试图利用您的错误,这可能非常有害。@tadman谢谢您的建议。:)您的查询格式不正确…我认为..限制在何处之前。我认为您需要一个子查询。一些mysql wiz可以帮助您解决问题。警告:当使用mysqli
时,您应该使用and将用户数据添加到查询中。不要使用字符串插值或连接来完成此操作,因为您创建了一个严重的错误。切勿将$\u POST
,$\u将
或任何用户数据直接输入到查询中,如果有人试图利用您的错误,这可能非常有害。@tadman谢谢您的建议。:')对不起,我没有运行我的查询,但这项工作很好,$sql=“SELECT*FROM users internal JOIN details ON users.id=details.id WHERE users.id=$loggedin\u id”;tq。。。我也认为这项工作需要进一步探索抱歉,我没有运行我的查询,但这项工作很好,$sql=“SELECT*FROM users-internal-JOIN-details-ON-users.id=details.id=loggedin\u-id”;tq。。。我认为这项工作也需要进一步探索,并保持下去很好,继续保持下去