Hallo badcoder
Ich möchte die Datensätze aus meiner MySQL-Tabelle (tabelle) nach den Werten in einer bestimmten Spalte (spaltenname) sortieren und zwar so, dass der Datensatz mit dem höchsten Wert in der Spalte (spaltenname) angezeigt wird. Dabei können die Werte in der betreffenden Spalte sowohl positiv wie auch negativ bzw. 0 oder NULL sein.
Wenn -1,+1,-10, dann soll er -10 als größten Wert zurückgeben.Leider funktioniert das so nicht:
``mysql_query("SELECT * FROM tabelle ORDER BY spaltenname DESC LIMIT 1") or die(mysql_error());
Das Problem ist, dass -10 nicht der grösste _Wert_ ist, sondern lediglich die grösste _Ziffer_
Versuchs, indem du den grössten und den kleinsten Eintrag deiner Tabelle ausliest, beim kleinsten ein allfälliges Vorzeichen streichst und die beiden dann miteinander vergleichst.
Das könnte so aussehen, falls deine Tabelle eine Spalte 'ID' mit Primärschlüssel hat. Kannst du ja auch nach anfügen...
$groesster_Wert= mysql_fetch_assoc(mysql_query("SELECT ID, spaltenname FROM tabelle ORDER BY spaltenname DESC LIMIT 1"));
$kleinster_Wert= mysql_fetch_assoc(mysql_query("SELECT ID, spaltenname FROM tabelle ORDER BY spaltenname ASC LIMIT 1"));
//Vorzeichen entfernen, falls vorhanden
if (is_int(strpos($kleinster_Wert['spaltenname'], '-'))) {
$kleinster_Wert['spaltenname'] = substr($kleinster_Wert['spaltenname'], 1);
}
//Werte vergleichen und richtigen aussuchen
if ($kleinster_Wert['spaltenname'] > groesster_Wert['spaltenname']) {
$dein_gesuchter_Eintrag = mysql_query("SELECT * FROM tabelle WHERE ID = '".$kleinster_Wert['ID']."'");
}
else {
$dein_gesuchter_Eintrag = mysql_query("SELECT * FROM tabelle WHERE ID = '".$groesster_Wert['ID']."'");
}
PS: wenn du willst, dass etwas im Forum als Code dargestellt wird, musst du es zwischen die "Code-Tags" schreiben
Danke!
MfG
Solero