用PHP过滤MySQL数据只显示当前会话用户的数据?

时间:2015-12-07 03:20:26

标签: php mysql mysqli

我有以下PHP脚本选择MySQL数据并显示所有不同的用户'表中的数据。

我需要的是将此数据仅限制为该会话的登录用户的数据。与登录人员的单个ID,姓名和电子邮件不同,而不是显示所有用户数据的表格。

我认为我需要" SELECT * FROM usertable where(something)=(something)",我只是不确定从哪里开始。

任何帮助都将不胜感激。

<?php
$con=mysqli_connect("localhost","myusername","mypassword","mydatabase");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM usertable");

echo "<table border='1'>
<tr>
<th>ID</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>";

while($row = mysqli_fetch_array($result)) 
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td>" . $row['emailaddress'] . "</td>";
echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:0)

你好!

你说得对,你在声明中需要一个WHERE条款。

如果您有人登录并且正在寻找人员姓名登录在第一个商店,那么ID在变量中,例如$ _SESSION变量,您的陈述将如SELECT * FROM usertable WHERE id = {$_SESSION['id']}

首先,当用户登录存储它时,您需要一个函数

$_SESSION['id'] = row['id']

或者如果您正在寻找特定的名字/姓氏组合:  

"SELECT * FROM usertable WHERE firstname = '{$firstname}' AND lastname = '{$lastname}' 

答案 1 :(得分:0)

SESSION ID并不意味着您需要制作类似$ _SESSION ['user_id']的内容。

记住SESSION就像鬼一样,有时可能会丢失,没有任何痕迹。尝试使用简单的cookie来确认数据库中的会话数据存储。只是对该cookie进行限制,因此在几次之后,cookie将被破坏并以完全不同的值进行更新。

对于你的问题很简单,......

SELECT * FROM 'tablename' WHERE 'table_field' LIKE 'table_value'