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

时间:2018-01-19 17:14:42

标签: 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...
}

有两张桌子:

1)用户(id)

2)zoekkopers(id,user_id)

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

$ session_email是当前登录的用户。

还在PHP中尝试了这个sql:

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

PHPMYADMIN:

SELECT * 
FROM  `zoekkoper` 
WHERE user_id = ( 
SELECT id
FROM users
WHERE email =  '...' ) 

2 个答案:

答案 0 :(得分:1)

你需要加入如下: -

$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));

答案 1 :(得分:0)

我认为,你应该在where子句中使用$string = str_replace(["'", '=>', '[', ']'], ['"', ':', '{', '}'], $string); print_r(json_decode($string, true)); ,因为子选择可能会返回多个结果;

IN