簡體   English   中英

如何從兩個基於會話變量php的表中獲取數據?

[英]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並按以下步驟使用程序步驟:

  • 第1步:只需在您所有的頁面中啟動會話-session_start();
  • 步驟2:在Db中為Session創建一列,例如sessionCheck
  • 步驟3:在“注冊”頁面上啟動會話,並使用MySqli最后插入函數,例如:

$_session["anything"] = mysqli_insert_id(your db connection variable); 然后將此會話ID存儲到變量中(例如- $sessionCheck = $_session["anything"];在執行插入操作時,將此變量的值插入到數據庫中會話列的所有列中。和獨特。

  • 步驟4:在顯示頁面上,使用專門用於嵌套IF的控件結構代替INNER JOIN。
  • 步驟5:您的所有插入操作都會將$ _sessionCheck的值插入除注冊頁面之外的所有表的sessionCheck中(因為會話ID最初是從注冊頁面中選取的,因此您無需再次插入注冊)
  • 步驟6:您的所有Select應該綁定到WHERE sessionCheck = $sessionCheck

這對我的過程PHP 7(MySqli)和MySQL 5來說非常合適

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM