Zahlen richtig sortieren
Zahlen richtig sortieren
Hallo,
ich habe eine Tabelle, die man nach verschiedenen Spalten sortieren lassen kann.
Eine Spalte hat nur Zahlen. Wenn ich diese jetzt abwärts sortieren lasse, ist eine 9 höher in der Tabelle (also als erstes in der Tabelle) als eine 18. Was muss ich machen, damit das Script die richtig sortiert ?
ich habe eine Tabelle, die man nach verschiedenen Spalten sortieren lassen kann.
Eine Spalte hat nur Zahlen. Wenn ich diese jetzt abwärts sortieren lasse, ist eine 9 höher in der Tabelle (also als erstes in der Tabelle) als eine 18. Was muss ich machen, damit das Script die richtig sortiert ?
Hi,
ich habe eine Fussball-Tabelle. Aus meiner DB werden halt Tore, Tordifferenz etc. in dieser Tabelle ausgegeben. Wenn ich jetzt nach Tordifferenz sortieren lasse, ist die Mannschaft die eine Diff. von 8 haben in der Tabelle höher als die Mannschaft die die höchste Diff. von 18 haben. Kann mir jemand da helfen ?
ich habe eine Fussball-Tabelle. Aus meiner DB werden halt Tore, Tordifferenz etc. in dieser Tabelle ausgegeben. Wenn ich jetzt nach Tordifferenz sortieren lasse, ist die Mannschaft die eine Diff. von 8 haben in der Tabelle höher als die Mannschaft die die höchste Diff. von 18 haben. Kann mir jemand da helfen ?
Hallo,
es funktioniert einfach nicht. Die 9 ist immer vor der 18. Damit das jeder vielleicht besser verstehen kann, hier ist der Code:
es funktioniert einfach nicht. Die 9 ist immer vor der 18. Damit das jeder vielleicht besser verstehen kann, hier ist der Code:
Code: Alles auswählen
<?
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
require_once("modules/$module_name/config.php");
$index=1;
include("header.php");
OpenTable();
// Quelltext
@mysql_select_db ($dbase) or die ("Kann Datenbank nicht finden");
$result1 = mysql_query("SELECT * FROM config", $conn);
list($tab) = sql_fetch_row($result1, $conn);
if ($tab==0) {
$tableborder = "<TABLE BORDER=1 cellspacing=0 rules=none bordercolor=#000000>";
} else {
$tableborder = "<TABLE BORDER=0 cellspacing=0>";
$tableunten = "<tr bgcolor=#595959><td height=1 colspan=18></td></tr>";
// $tableseiten = "<TD width=1% bgcolor=#595959 rowspan=18></td>";
}
if(!isset($sort)) {
$result = mysql_query("SELECT * FROM $table ORDER by punkte DESC, tordiff DESC", $conn);
} else {
$sortdir = ($sort=='team') ? 'ASC' : 'DESC';
$result = mysql_query("SELECT * FROM $table ORDER BY $sort $sortdir", $conn);
}
if($sort=='platz') {
$colorplatz = 'red';
} else {
$colorplatz = '#000000';
}
if($sort=='team') {
$colorverein = 'red';
} else {
$colorverein = '#000000';
}
if($sort=='punkte') {
$colorpunkte = 'red';
} else {
$colorpunkte = '#000000';
}
if($sort=='gtore') {
$coloret = 'red';
} else {
$coloret = '#000000';
}
if($sort=='btore') {
$colorgt = 'red';
} else {
$colorgt = '#000000';
}
if($sort=='tordiff') {
$colordiff = 'red';
} else {
$colordiff = '#000000';
}
$number = mysql_num_rows($result);
echo "<P>Es sind $number Datensätze gelesen worden.</P>";
echo $tableborder;
echo $tableunten;
echo "<TR style='background-color:#d9ecec'>";
echo $tableseiten;
echo "<TD width=10%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=platz'><FONT COLOR='$colorplatz'>Platz</A></FONT></TD>";
echo "<TD width=35%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=team'><FONT COLOR='$colorverein'>Verein</A></FONT></TD>";
echo "<TD width=10%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=punkte'><FONT COLOR='$colorpunkte'>Punkte</A></FONT></TD>";
echo "<TD width=10%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=gtore'><FONT COLOR='$coloret'>ET</A></FONT></TD>";
echo "<TD width=10%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=btore'><FONT COLOR='$colorgt'>GT</A></FONT></TD>";
echo "<TD width=10%><P ALIGN =CENTER><A HREF='$PHP_SELF?name=Tabellesort&sort=tordiff'><FONT COLOR='$colordiff'>Diff</A></FONT></TD>";
echo $tableseiten;
echo "</TR>";
echo $tableunten;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$platz++;
$color = ($platz%2 == 0) ? '#f5f5f5' : '#ffffff';
echo '<TR style="background-color:' . $color . '">';
echo "<TD><P ALIGN =CENTER>";
echo $row['platz'];
echo $platz;
echo "</TD>";
echo "<TD>";
echo $row['team'];
echo "</TD>";
echo "<TD><P ALIGN =CENTER>";
echo $row['punkte'];
echo "</TD>";
echo "<TD><P ALIGN =CENTER>";
echo $row['gtore'];
echo "</TD>";
echo "<TD><P ALIGN =CENTER>";
echo $row['btore'];
echo "</TD>";
echo "<TD><P ALIGN =CENTER>";
echo $row['tordiff'];
echo "</TD>";
echo "</TR>";
}
echo $tableunten;
echo "</TABLE>";
CloseTable();
include("footer.php");
?>
Hallo,
ich habe da aber noch ein Problem.
Ich habe eine Tabelle sortieren lassen. Die informationen kommen alle aus einer DB.
Jetzt habe ich z.B so sortiert: "SELECT * FROM $table ORDER by punkte DESC, diff DESC".
Nun möchte ich aber, das in der ersten spalte der tabelle eine Reihenfolge existiert, also
das dort der erste Datensatz, der durch diese Sortierung erster ist, auch den Platz 1 stehen
hat. Ich meine das so, hier die tabelle wie sie jetzt aussieht wenn ich sie ausgebe:
Und so soll Sie aussehen:
Das Script soll erst nach den oben genannten Kriterien sortieren (das klappt) und dann
soll der Platz (wie oben) in eine Spalte in der DB geschrieben werden. Das in die DB schreiben
kann ich, aber wie mache ich das mit der Platzierung. Kann mir da jemand helfen ? Bitte.
ich habe da aber noch ein Problem.
Ich habe eine Tabelle sortieren lassen. Die informationen kommen alle aus einer DB.
Jetzt habe ich z.B so sortiert: "SELECT * FROM $table ORDER by punkte DESC, diff DESC".
Nun möchte ich aber, das in der ersten spalte der tabelle eine Reihenfolge existiert, also
das dort der erste Datensatz, der durch diese Sortierung erster ist, auch den Platz 1 stehen
hat. Ich meine das so, hier die tabelle wie sie jetzt aussieht wenn ich sie ausgebe:
Code: Alles auswählen
|Team|Punkte|Diff|
------------------
| A | 30 | 20 |
| B | 27 | 22 |
| C | 22 | 17 |
| D | 18 | 11 |
Code: Alles auswählen
|Platz|Team|Punkte|Diff|
------------------------
| 1 | A | 30 | 20 |
| 2 | B | 27 | 22 |
| 3 | C | 22 | 17 |
| 4 | D | 18 | 11 |
soll der Platz (wie oben) in eine Spalte in der DB geschrieben werden. Das in die DB schreiben
kann ich, aber wie mache ich das mit der Platzierung. Kann mir da jemand helfen ? Bitte.