我在PHP中加入了一个查询,我希望通过用户ID加入2个数据库,但我希望能够从两个表中获取数据(users& user_stats),虽然它不允许我输出user_stats
表中的任何数据,这让我相信我的查询中存在错误..
因此,这是我第一次使用连接表,有人可以指导我正确的方向,到目前为止我有:
$getMembers3 = dbquery("SELECT users.id, users.look, users.username
FROM users
JOIN user_stats
ON users.id = user_stats.id
WHERE users.rank < 2 ORDER BY user_stats.Respect DESC LIMIT 10");
我正试图从user_stats
VIA获取尊重:
while ($member2 = mysql_fetch_assoc($getMembers3))
{
echo $member2['user_stats.Respect'] . '<br>';
echo $member2['username'] . '<br>';
}
虽然它允许我从users表中查看他们的用户名,但它不允许我查看user_stats.Respect。如果有人能够在正确的方向上启发我,那就太棒了。
答案 0 :(得分:0)
更改您的查询,在select语句中添加字段:
$getMembers3 = dbquery("SELECT users.id, users.look, users.username,user_stats.Respect
FROM users
JOIN user_stats
ON users.id = user_stats.id
WHERE users.rank < 2 ORDER BY user_stats.Respect DESC LIMIT 10");
作为旁注,您正在使用已弃用的api来访问已在PHP 7中删除的数据库。请考虑切换到PDO和预准备语句。
答案 1 :(得分:0)
从mutliple表中选择时我总是感到困惑,这就是我通常解决困惑的方法:
$getMembers3 = dbquery("SELECT users.id as id, users.look as look, users.username as username, user_stats.Respect as respect
FROM users
JOIN user_stats
ON users.id = user_stats.id
WHERE users.rank < 2 ORDER BY user_stats.Respect DESC LIMIT 10");
通过这种方式,您可以了解列名称的含义。旁注,结果集在数组键中不会有点。
然后您可以访问以下结果:
while ($member2 = mysql_fetch_assoc($getMembers3))
{
echo $member2['respect'] . '<br>';
echo $member2['username'] . '<br>';
}