两个表值匹配等于一个值

时间:2017-01-27 20:42:06

标签: php mysql sql if-statement

这让我很困惑,我不知道该怎么做。

基本上我想在用户名与数据表上的用户名匹配时显示一些数据。当您看到代码时,您将会理解。

所以这是我用来尝试在我的主页上显示它的代码:

<?php
if($login_user == $feedbackuser)
{
echo'
<p>Hey</p>
';                       
}
?>

然后,这是我的代码连接到SQL数据库并尝试从每个表调用信息。

连接到表1:

<?php
include('connection.php');
session_start();
$user=$_SESSION['user'];
$ses_sql = mysqli_query($db,"SELECT user FROM feedback WHERE user='$user'");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$feedbackuser=$row['user'];
?>

连接表2:

<?php
include('connection.php');
session_start();
$user_check=$_SESSION['username'];

$ses_sql = mysqli_query($db,"SELECT username FROM users WHERE username='$user_check' ");



$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

$login_user=$row['username'];
$admin=$row['admin'];

if(!isset($user_check))
{
header("Location: index.php");
}
?>

所以基本上我希望如果表1中的用户名与表2中的用户匹配,则会显示一个句子。

如果你能帮助我,那就太棒了。如果您在我解释更多之前先看一下屏幕截图:

http://rextester.com/ADJZSW20744

因此,如果表1中的用户名与表2中的用户匹配,那么&#34;写&#34;从表2中将显示在页面上。

1 个答案:

答案 0 :(得分:0)

您可以使用left join的单个查询来查看用户是否存在任何反馈,例如:

SELECT u.username, f.user
FROM users u LEFT JOIN feedback f ON u.username = f.user
WHERE u.username=$user_check;

这样,您将同时获得usernamefeedback

  • 如果feedbacknull但用户不是null,则表示feedback表中不存在任何记录。
  • 如果两者都是null,则表示用户不在场

我假设user是主表。如果不是这种情况,您可以通过颠倒左连接中的顺序将feedback用作主表。