Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 sql子查询没有给出任何结果,但sql子查询是_Php_Sql_Phpmyadmin - Fatal编程技术网

php sql子查询没有给出任何结果,但sql子查询是

php sql子查询没有给出任何结果,但sql子查询是,php,sql,phpmyadmin,Php,Sql,Phpmyadmin,代码: $query = mysqli_query($conn, "SELECT * FROM zoekkoper WHERE user_id = (SELECT id FROM USERS WHERE email='$session_email')"); while ($record = mysqli_fetch_assoc($query)) { table output... } SELECT * FROM `zoekkoper` WHERE user_id = ( SELEC

代码:

$query  = mysqli_query($conn, "SELECT * FROM zoekkoper WHERE user_id = (SELECT id FROM USERS WHERE email='$session_email')");

while ($record = mysqli_fetch_assoc($query))
{
table output...
}
SELECT * 
FROM  `zoekkoper` 
WHERE user_id = ( 
SELECT id
FROM users
WHERE email =  '...' ) 
有两个表:

1) 用户(id)

2) zoekkopers(id,用户id)

要从表“zoekkopers”中选择与表“users”id匹配的结果。id和user_id在两个表中的值相同。当前登录的用户应该只看到自己添加的值。 我在phpadmin中尝试了sql,这给了我正确的结果,但我无法在php中使用它。如果我删除WHERE部分,那么我将从数据库中的所有用户处获得所有结果值,只是希望它对每个用户更具体


$session\u email是当前登录的用户

还尝试在PHP中使用此sql:

"SELECT * FROM zoekkoper JOIN users ON (user_id=id) WHERE email='$session_email'");
PHPMYADMIN:

$query  = mysqli_query($conn, "SELECT * FROM zoekkoper WHERE user_id = (SELECT id FROM USERS WHERE email='$session_email')");

while ($record = mysqli_fetch_assoc($query))
{
table output...
}
SELECT * 
FROM  `zoekkoper` 
WHERE user_id = ( 
SELECT id
FROM users
WHERE email =  '...' ) 

您需要按如下方式加入:-

$query  = mysqli_query($conn, "SELECT * FROM zoekkoper JOIN users ON zoekkoper.user_id= users.id WHERE users.email='$session_email'") or die(mysqli_error($conn));

我认为,您应该在for where子句中使用
,因为子选择可能返回多个结果

$query  = mysqli_query($conn, "SELECT * FROM zoekkoper WHERE user_id IN (SELECT id FROM USERS WHERE email='$session_email')");

利用mysql错误显示,这样您就可以判断是否存在sql错误。但是您可能需要将
用户id=
更改为
中的
用户id。。。或者只需使用连接语法而不是嵌套查询。“$session\u email是当前登录的用户”您是否完成了
var\u dump($session\u email)
要确认该值是否是您当时期望的值,我支持join方法而不是嵌套查询方法。请注意,在这个答案中,
表。
字段前缀是最初尝试失败的原因,也是这个答案的sql正确的原因。