[英]How to fetch data from two tables based on session variable php?
實際上,我試圖根據當前會話顯示數據庫中2個表中的數據,基本上,我已經讀過很多文章和論壇來解決此問題,但直到現在我仍然面對它們。 所以這些是我已經做過的數據和代碼:
<?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();
}
?>
所以在這里,我得到了這個錯誤:“錯誤:您的SQL語法有錯誤;請查看與您的MariaDB服務器版本相對應的手冊,以在第3行的'WHERE users.id ='16'附近使用正確的語法”。 因此,如果我僅使用此查詢:
$sql="SELECT* FROM users INNER JOIN details ON users.id= details.id"
它會顯示數據庫中的所有數據,但是我只需要當前會話中的數據。
這是我的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和PHP是新的。 q
像這樣更改您的查詢。
$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 ";
您可以忽略INNER JOIN並按以下步驟使用程序步驟:
$_session["anything"] = mysqli_insert_id(your db connection variable);
然后將此會話ID存儲到變量中(例如- $sessionCheck = $_session["anything"];
在執行插入操作時,將此變量的值插入到數據庫中會話列的所有列中。和獨特。
WHERE sessionCheck = $sessionCheck
這對我的過程PHP 7(MySqli)和MySQL 5來說非常合適
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.