Ergebnisse von ORDER BY werden vertauscht

mcphilli

Erfahrenes Mitglied
hallo,
ich tüftel jetzt schon seit 4 tagen an ein sortierprogramm und finde den fehler bei dem nachfolgenden ausschnitt nicht. er sortiert alles so wie es sein soll, ABER die beiden werte die eigentlich an letzter stelle stehen sollen, weil sie den niedrigsten wert haben stehennun auf einmal am anfang. vom ergebnis her in etwa so

7. Platz
8. Platz
1. Platz
2. Platz
3. Platz
4. Platz
5. Platz
6. Platz

PHP:
        <?php
        $l=0;
        $sortieren = mysql_query("SELECT * FROM $tabelle_auswertung WHERE (mannschaft!='0' AND disziplin='$dis') ORDER BY speicher DESC", $dbverbindung);
        while($sortiert = mysql_fetch_array($sortieren))
        {
            $l++;
            ?>
            <table width="95%" cellspacing="0" cellpadding="0" border="0">
            <tr>
                <td width="60"><center><?php echo $l; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  		        <td colspan="2"><?php echo $sortiert[mannschaft]; ?></td>
    	        <td width="70"><center><?php echo $sortiert[speicher]; ?>&nbsp;&nbsp;&nbsp;&nbsp;</td>
            </tr>
            }
            ?>
            </table>
            <br>
            <?php
        }
        ?>

wenn mir einer bei diesen doch ziemlich verwirrenden sache helfen kann bin ich ihm sehr dankabr denn ich find wirklich nichts was da falsch ist.

mfg
mcphilli
 
wie sieht denn deine tabellenstruktur aus? ausserdem sind die werte mit ORDER BY ... DESC eh absteigend sortiert - also müsste der höchste wert oben stehen...
 
das die werte absteigend sind ist ja richtig, es sit ja nur das die letzten beiden kleinsten werte an erster stelle stehen.

disziplin | mannschaft | speicher
---------------------------------
TEXT | TEXT | TEXT

in der tabelle sollen dann die mannschaften nach dem wert in der spalte speicher geordnet werden.
 
definier das feld "speicher" doch einfach mal vom datentyp als zahl (int). beim ausgeben des feldinhaltes kannst du ja immer noch "Platz" hinten anhängen.
text-felder machen eine datenbank (meiner erfahrung nach) immer fehleranfällig, die sollte man wenn möglich vermeiden. und da du ja eigentlich eh nur die zahl speichern musst, reicht dir auch ein int-feld.
 
und schon wieder etwas dazu gelernt, es funzt wirklich wenn man die spalte auf int setzt. dnake für deine hilfe

mfg
mcphilli
 

Neue Beiträge

Zurück