PHP MySQL返回具有相同值的列

时间:2017-08-23 12:07:07

标签: php mysql

例如我有桌子:

ID   |   Nickname   |      IP     |
----------------------------------|
1.   |  CustomNick  |  127.0.0.1  |
2.   |  NickCustom  |  127.0.0.1  |

现在我通过这段代码传递信息:

$stmt = $this->db->prepare("SELECT * FROM players WHERE Nickname = ?");
$stmt->execute(array($_SESSION['player_session']));

$playerInfo = $stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0) :
    return $playerInfo;
endif;

我使用此$info['columnName']打印价值。我的问题是,如何通过记录的玩家ID进行检查,他是否拥有此IP地址的更多帐户?如果是,请打印这些帐户昵称

例如,如果我登录customNick,则输出:CustomNick还有一个具有此IP的帐户(NickCustom)。对不起,我的英语不好,并提前致谢

1 个答案:

答案 0 :(得分:2)

这是你的解决方案..

方法1:子查询

$stmt = $this->db->prepare("SELECT * FROM players WHERE IP = (SELECT IP FROM players WHERE Nickname = ?)");
$stmt->execute(array($_SESSION['player_session']));

方法2:加入

$stmt = $this->db->prepare("SELECT * FROM players p1 INNER JOIN players p2 ON p1.IP = p2.IP WHERE p1.Nickname = ?");
$stmt->execute(array($_SESSION['player_session']));