php - 两个表值匹配等于一个值

标签 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 中的用户匹配,我希望显示一个句子。

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

https://gyazo.com/48bbdad68fa0e7f4e4ccd5969a37f614

因此,如果表 1 中的用户名与表 2 中的用户匹配,则表 2 中的“writing”将显示在页面上。

最佳答案

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

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

这样,您将同时获得用户名反馈

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

我假设user是主表。如果不是这种情况,您可以通过反转左连接中的顺序来使用 feedback 作为主表。

关于php - 两个表值匹配等于一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41902689/

相关文章:

sql - 计算一个值在不同列中出现的次数

php - Zend Framework 中的自定义类和函数

php - 3DES PHP 加密无法正确解密

mysql - MyISAM 文件大小已增加(加倍)

python mysqldb 问题与 python 2.6 & 或 mysql 接口(interface)

mysql - 尝试连接 3 个表

Sql Joins - 根据 Id 将字段分成两个

javascript - RSA-OAEP SHA-512 从 Javascriptwebcrypt api 加密/解密到 PHP openssl?

php - 在现代框架中使用路由文件的原因是什么?

php - 使用 php 从数据库创建页面 [就像框架或 cms 正在做的那样]