Es wird Nicht Richtig Sortiert!

my-azur

Mitglied
Hallo

ich lasse mit einer Schleife eine Memberliste auslesen und will sie nach deren Punkte Sortieren aber das klappt nicht!

PHP:
      $query = "SELECT * FROM benutzerdaten ORDER BY Punkte ASC";
       $abfrage = mysql_query($query, $connectionid) or die(mysql_error());
       $row = mysql_fetch_assoc($abfrage);
       $totalRows= mysql_num_rows($abfrage);?>
       <?php  do { ?>
       <tr class="tr_cycle2">
       <td><?php echo $row['Punkte'];?></td>
     </tr>
        <?php }while ($row = mysql_fetch_assoc($abfrage));?>

Aber dann werden die Punkte so ausgegeben!

70
28
268
220
216
167
16
0

Warum ordnet der die so an und nicht der große nach?

Danke
 
Zuletzt bearbeitet:
Hallo!

Von welchem Typ ist die Spalte `Punkte`? Die Sortierung ist irgendwie alphabetisch umgekehrt...

Allerdings lautet die Lösung: du lässt nicht nach den Punkten, sondern nach der ID sortieren!

Mamphil
 
Ersetz mal
$query = "SELECT * FROM benutzerdaten ORDER BY ID ASC";

durch
$query = "SELECT * FROM benutzerdaten ORDER BY punkte ASC";

:D
 
Oh mein Fehler Ich habe bei mir schon Punkte stehen! aber falsch kopiert (peinlich)

Die Spalte Punkte ist varchar(5)
 
Naja, dann wird halt alphabetisch sortiert. Und bei dir steht mit ziemlicher Sicherheit "... ORDER BY Punkte DESC"...

1.) Sortiert DESC immer rückwärts und
2.) kannst du als Text gespeicherte Zahlen nicht dem Zahlenwert nach sortieren...

Mamphil
 
Hi!

Punkte sind doch immer Zahlen: Verwende für die Spalte also einen Integer-Typen (abhängig von der max. zu speichernden Punktzahl)

Mamphil
 
Zurück