我想显示别名昵称,该昵称在同一个IP地址上有2个配置文件。 现在我在StackOverflow上有一个解决方案,现在我想显示两个名称。
消息来源
<?php
$sql = "SELECT ip_adres, nickname2 FROM users";
$users = $db->prepare($sql);
$users->execute();
$ips = array();
$aliases = array();
foreach($users as $user) {
if (in_array($user['ip_adres'], $ips))
array_push($aliases, $user);
$ips[] = $user['ip_adres'];
}
foreach($aliases as $alias) {
echo $alias['nickname2'] . ' has a alias profile! '. $alias['ip_adres'] .'<br/>';
}
?>
$ user OURPUT
First has a alias profile! 213.93.99.38
Second has a alias profile! 213.93.99.38
Third has a alias profile! 213.93.45.33
Bla has a alias profile! 213.93.45.33
ZZZZ has a alias profile! 213.93
现在显示
Second has a alias profile! 213.93.99.38
Bla has a alias profile! 213.93.45.33
我没有获得第一个别名昵称我该怎么做?
答案 0 :(得分:1)
这将为你做.. ..
<?php
require_once "db_connect.php";
$sql = "SELECT
ip_adres,
GROUP_CONCAT(DISTINCT nickname2 ORDER BY nickname2) nickname
FROM
users
GROUP BY ip_adres
HAVING COUNT(*) > 1";
$users = $db->prepare($sql);
$users->execute();
foreach($users as $u){
$nick = $u['nickname'];
$ip = $u['ip_adres'];
echo "$nick $ip";
}
?>
答案 1 :(得分:0)
尝试将代码更改为此类
<?php
$sql = "SELECT ip_adres, nickname2 FROM users";
$users = $db->prepare($sql);
$users->execute();
$ips = array();
# count occurrences of each IP address
foreach($users as $user) {
if (isset($ips[$user['ip_adres']]))
$ips[$user['ip_adres']] ++;
else
$ips[$user['ip_adres']] = 1;
}
# print out records with IP address which appears more than once
foreach($users as $user) {
if (1 < $ips[$user['ip_adres']])
echo $user['nickname2'] . ' has a alias profile! '. $user['ip_adres'] . '<br/>;
}