Hallo ich Möchte gerne die 10 Größten Werte aus meiner DB ausgeben?
Hallo :) ich möchte gerne die 10 user mit den Meisten Coins ausgeben.
wie mach ich das genau mit PHP?
Dieses Script gibt mir alle User aus .. ich möchte aber nur die 10 User mit den Meisten Coins ausgeben? Jemand ne Antwort?
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$sql = "SELECT * FROM users"; foreach ($pdo->query($sql) as $row) { echo $row['coins']." ".$row['id']."
"; echo "E-Mail: ".$row['email']."
"; } ?>
5 Antworten
Dazu musst du dein SQL-Query anpassen. In deinem Fall wäre es folgendes:
SELECT * FROM users ORDER BY coins DESC LIMIT 10;
Mit ORDER BY gibst du an, nach welcher Spalte sortiert werden soll. DESC steht für absteigend, also höchster Wert zuerst. Am Schluss mit LIMIT definierst du die Anzahl Ergebnisse.
Wenn ich jetzt keinen Gedankenfehler habe...
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$sql = "SELECT * FROM users ORDER BY coins DESC LIMIT 10"; foreach ($pdo->query($sql) as $row) { echo $row['coins']." ".$row['id']."
"; echo "E-Mail: ".$row['email']."
"; } ?>
Ach und die Zahlen werden nicht richtig ausgeben ohne number_format
<?php $sql = "SELECT * FROM users ORDER BY coins DESC LIMIT 10";
foreach ($pdo->query($sql) as $row) {
$coinsrow = number_format(
$row['coins'], // zu konvertierende zahl
0, // Anzahl an Nochkommastellen
".", // Dezimaltrennzeichen
"." // 1000er-Trennzeichen
);
?><?echo $coinsrow . ""; echo " User: ".$row['email']."
";?><?
} ?>
Hei danke :) ja das hilft allerdings :/ die user werden jz zwar aufgelistet aber der mit den Meisten Coins steht noch immer nicht ganz oben.. es ist alles bund duchgemischt