如何从PHP中的联接查询中获取数据

时间:2016-05-19 10:23:38

标签: php mysql sql

我在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。如果有人能够在正确的方向上启发我,那就太棒了。

2 个答案:

答案 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>';
    }