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正确的原因。