我有一个数据库,在那个数据库中我有一个ipbans
表,然后我还有一个用户表。users 表有一个名为的列lastip
,该ipbans
表有一个名为 ip 的表。
我需要将 lastip 与 ip 列进行比较,如果它们都匹配以显示数据,我已经在 mysql 中完成了它,但我不知道如何将它添加到我现有的 while 循环中,以查找用户是否被禁止或不是。
SELECT
IF((SELECT INET_NTOA(b.ip) FROM ipbans AS b WHERE INET_NTOA(b.ip) = p.LastIP) IS NULL, concat('<font color=blue>', p.LastIP, '</font>'), concat('<font color=red>', p.LastIP, '</font>')) AS IPv4
FROM players AS p WHERE p.Banned = 1
这样做会使 IP 如果匹配则变为蓝色,如果不匹配则使 IP 变为红色,但我想用用户名回显此数据。
编辑:
$sql = mysql_query("SELECT * FROM `players` WHERE `Banned` = 1");
while($row = mysql_fetch_array($sql)) {
$username = $row['Username'];
$lastip = $row['LastIP'];
$level = $row['Level'];
echo "<tr>";
echo "<td>$username</td>";
if ($lastip > 2){
echo "<td>$lastip</td>";
} else {
echo '<td>IP not found in IPBans!</td>';
}
echo "<td>$level</td>";
echo "<td>Location</td>";
echo "</tr>";
}
我目前有以上作为我的查询,它进入玩家表并列出被禁止的玩家,从那里我想获取他们登录的最后一个 IP(已经使用 LastIP 列登录)并且我想将其与 ipbans 表进行比较,仅显示 IP 与 ipbans 表和 LastIP 匹配的用户。