Guten Tag,
ich bin gerade dabei alle IPs mit den Usern aus der Datenbank zu vergleichen. Sinn war, dass erstmal alle Accounts gezählt werden, die die gleich IP-Adresse haben.
Das Problem ist, dass die User doppelt gezählt werden. Außerdem werden sie sogar selbst gezählt bzw. gelistet.
Ich komme nicht weiter und brauche Hilfe.
Tabellenstruktur:
Tabellensätze:
Mein Code (1):
$query = $dbh->prepare("SELECT `$mysql->db_acc_ip_id`, COUNT(*) as multiaccs FROM `$mysql->db_acc_ip_table` GROUP BY `$mysql->db_acc_ip_ip`");
$query->execute();
if($query->rowCount() == 0)
{
echo "<div class='alert alert-info'>Es wurden keine Multiaccounts gefunden.</br></div>";
}
else
{
echo "
<table class='table table-hover'>
<thead>
<tr>
<td><b>$labels->page_multiacc_table_item_1</b></td>
<td><b>$labels->page_multiacc_table_item_2</b></td>
<td></td>
</tr>
</thead><tbody>";
while($result = $query->fetch())
{
echo "<tr>";
echo "<td>".$mysql_funcs->getUserNameById($result[$mysql->db_acc_ip_id], $mysql, $dbh)."</td>";
echo "<td>".$result["multiaccs"]."</td>";
echo "<td><a href='?page=multiaccounts&details=".$result[$mysql->db_acc_ip_id]."'><span class='btn btn-sm btn-primary'>Details</span></a></td>";
echo "</tr>";
}
echo "</tbody></table>";
}
Meine Ausgabe von Code (1):
__________________________________________________________________________________________________
Mein Code (2):
if(isset($_GET["details"]))
{
$user_id = filter_var($_GET["details"], FILTER_SANITIZE_SPECIAL_CHARS);
if($mysql_funcs->getUserLogIdbyId($user_id, $mysql, $dbh) > 0)
{
$query = $dbh->prepare("SELECT `$mysql->db_acc_ip_id` FROM `$mysql->db_acc_ip_table` WHERE `$mysql->db_acc_ip_ip` = :uip");
$query->execute(array(":uip"=>$mysql_funcs->getUserIpById($user_id, $mysql, $dbh)));
if($query->rowCount() == 0)header("location: home.php");
echo "
<table class='table table-hover'>
<thead>
<tr>
<td><b>$labels->page_multiacc_table_item_1</b></td>
<td><b>$labels->page_multiacc_table_item_2</b></td>
<td></td>
</tr>
</thead><tbody>";
while($result = $query->fetch())
{
echo "<tr>";
echo "<td>".$mysql_funcs->getUserNameById($user_id, $mysql, $dbh)."</td>";
echo "<td>".$mysql_funcs->getUserNameById($result[$mysql->db_acc_ip_id], $mysql, $dbh)."</td>";
echo "<td></td>";
echo "</tr>";
}
echo "</tbody></table>";
}
else header("location: home.php");
}
Meine Ausgabe von Code (2):
Mein Problem liegt in den SQL Abfragen. Je mehr IPs dort eingetragen sind, desto öfter werden die gleichen Spieler aufgelistet.
Beispiel:
Tabelle:
Ausgabe:
Vielen Dank für jegliche Hilfe im Voraus.