【发布时间】:2018-01-19 17:14:42
【问题描述】:
代码:
$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...
}
有 2 张桌子:
1) 用户 (id)
2) zoekkopers (id, user_id)
想要从表 'zoekkopers' 中选择与表 'users' id 匹配的结果。 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 = '...' )
【问题讨论】:
-
利用mysql错误显示,可以判断是否有sql错误。
-
但是您可能想将
user_id =更改为user_id IN... 或者只使用JOIN 语法而不是嵌套查询。 -
"$session_email 是当前登录用户" 您是否已完成
var_dump($session_email);以确认该值是您当时期望的值?
标签: php sql phpmyadmin