Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 两个表值匹配等于一个值_Php_Mysql_Sql_If Statement - Fatal编程技术网

Php 两个表值匹配等于一个值

Php 两个表值匹配等于一个值,php,mysql,sql,if-statement,Php,Mysql,Sql,If Statement,这真的让我困惑,我不知道该怎么办 基本上,如果用户名与数据表上的用户名匹配,我希望显示一些数据。当你看到代码时,你就会明白了 下面是我用来在主页上显示它的代码: <?php if($login_user == $feedbackuser) { echo' <p>Hey</p> '; } ?> 下面是我连接到SQL数据库并尝试从每个表调用信息的代码 连接到表1: <?php include('connec

这真的让我困惑,我不知道该怎么办

基本上,如果用户名与数据表上的用户名匹配,我希望显示一些数据。当你看到代码时,你就会明白了

下面是我用来在主页上显示它的代码:

<?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'];
?>

您可以使用带有
左连接的单个查询来查看是否存在针对用户的任何反馈,例如:

SELECT u.username, f.user
FROM users u LEFT JOIN feedback f ON u.username = f.user
WHERE u.username=$user_check;
这样,您将获得
用户名
反馈

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

我假设
user
是主表。如果不是这样的话,你可以使用“代码”>“反馈/代码”作为主表,通过反转左边连接的顺序。

我想你还没有解释你正在使用什么样的问题。考虑一下,在这两个表中,每个用户只有一行吗?如果是,则可以编写如下单个查询:
从用户中选择u.username u内部连接反馈f ON u.username=f.user和f.user='$user'
。现在,如果您想专门访问某些列,则必须将这些列包括在
选择中-例如,
选择u.username、f.col1、u.col2,…
。此外,请考虑切换到准备好的查询:屏幕截图不再可用。
SELECT u.username, f.user
FROM users u LEFT JOIN feedback f ON u.username = f.user
WHERE u.username=$user_check;