[英]How to get session variable from 2 different tables?
我是PHP
新手。 我第一次使用会话。 我在数据库中有两个表。 第一个名称为pacra_teams
表,具有列ID和标题。 第二个表是og_users
具有多列,但我使用team_title
作为foreign key
作为针对团队标题的商店ID。
现在,我想创建一个session
并希望从表中显示的队名pacra_teams
从和用户名table
og_users
。
我尝试遵循以下代码,但失败了。
<?php
// starts session
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "pacra1";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql="SELECT *
FROM og_users
LEFT JOIN pacra_teams
ON og_users.id = pacra_teams.id
LIMIT 1
";
// setting variable values during session
$_SESSION['og_users.username']=$username;
$_SESSION['pacra_teams.title']=$title;
?>
称这些变量
<?php
session_start();
?>
<?php
print_r($_SESSION);
?>
请帮我怎么做?
一件事。 如果我运行seesion.php页面,它将显示未定义的变量“标题”,并且如果我运行打印代码。 它显示用户名“ root”,但我的数据库中没有任何用户名root
您已经定义了查询,但是没有执行它。
// starts session
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "pacra1";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql="SELECT *
FROM og_users
LEFT JOIN pacra_teams
ON og_users.id = pacra_teams.id
LIMIT 1
";
$result = $conn->query($sql);
$row = $result->fetch_object();
// setting variable values during session
$_SESSION['og_users.username'] = $row->USER_NAME; // Change to correct column name in table og_users
$_SESSION['pacra_teams.title'] = $row->TITLE_COLUMN_NAME; // Change to correct column name in table pacra_teams
每次在sql语句中没有WHERE子句时,结果都是相同的。 它只会返回找到的第一行。 似乎您正在尝试在会话变量中设置用户信息,以便可以在整个应用程序中调用数据,因此这是一种可能的解决方案,假设您在某个地方(IE Web表单)获取了该用户的ID。
这是解释概念的简单答案,而不是教程。
<?php
//Setup your connection stuff here
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "pacra1";
//Get a user's name from a form
$userName = $_POST['username'];
// Perform your query
$db= new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT *
FROM og_users
LEFT JOIN pacra_teams
ON og_users.id = pacra_teams.id
WHERE og_users.username = {$userName} LIMIT 1";
if(!$result = $db->query($sql)){
die('Error [' . $db->error . ']');
}
// Setting variable values during session
while($row = $result->fetch_assoc()) {
$_SESSION['ogUsername'] = $row['USERNAME']; // USERNAME is a placeholder for the example
$_SESSION['pacraTeamsTitle'] = $row['TITLE']; // Same here
}
它不是完美的,但是希望它可以帮助解释概念并帮助您完成任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.