Hallo ich Möchte gerne die 10 Größten Werte aus meiner DB ausgeben?

4 Antworten

Zwei Möglichkeiten möchte ich vorschlagen

  1. Du sortierst deine Liste per SQL nach coins mit "ORDER BY coins DESC" und lässt beim Zählen in PHP einen Zähler mitlaufen, den du bei 10 Durchläufen abbrichst.
  2. Du sortierst deine Liste per SQL nach coins wie oben und gibst zusätzlich das Schlüsselwort "first" (oder "top" je nach SQL-Derivat) der SELECT-Anweisung mit 
    SELECT first 10 * FROM users ORDER BY coins DESC

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']."

"; } ?>

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

0
@flo34771

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']."
";?><?
} ?>



0

Was möchtest Du wissen?