PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit ORDER by (mit 2 Anweisungen)


Malte
07.09.2002, 10:15
Moinsen !

Ich versuche gerade eine Tabelle für die 2. Bundesliga Nord (Handball) für meine Webseite zu erstellen, welche Datenbankunterstützt sein soll.

Ich habe jetzt die ganzen Daten, die ich brauche in der Datenbank (verein/siege/unentschieden/niederlagen/tore/gegentore/pluspunkte/minuspunkte/tordiff/punktediff/saison)

Jetzt habe ich mir ein Script geschrieben, welches das alles dann sortieren soll.

$sql = "SELECT * FROM m1table WHERE saison = 'BL220022003' ORDER by punktediff DESC";

Wird gut geordnet - die Vereine mit negativer Punktedifferenz sind unten und die mit positiver oben (es gab erst 3 Begegnungen, also haben 12 vereine noch 0 punkte)

Nur es gibt ein Problem: Die Tordifferenz ...

Platz Verein S U N Tore Punkte Tordiff
1 Eintracht Hildesheim 1 0 0 33:24 2:0 9
2 TuS Spenge 1 0 0 23:18 2:0 5
3 VfL Fredenbeck 1 0 0 31:24 2:0 7

hab jetzt mal die ersten 3 Plätze aus meiner Tabelle hier eingefügt --> wie ihr sehen könnt, müsste Fredenbeck eigentlich 2. sein und Spenge 3.

Also habe ich folgendes gemacht:
$sql = "SELECT * FROM m1table WHERE saison = 'BL220022003' ORDER by punktediff AND tordiff DESC";

Und schon ist alles durcheinander:

Platz Verein S U N Tore Punkte Tordiff
1 Ahlener SG 0 0 1 18:23 0:2 -5
2 Eintracht Hildesheim 1 0 0 33:24 2:0 9
3 HSG Tarp-Wanderup 0 0 1 24:31 0:2 -7
4 Reinickendorfer Füchse 0 0 1 24:33 0:2 -9
5 TuS Spenge 1 0 0 23:18 2:0 5
6 VfL Fredenbeck 1 0 0 31:24 2:0 7



Wie kann ich das verhindern ?


Jonas
07.09.2002, 10:28
AFAIK muss man ORDER BY spalte1, spalte2, spalte3 machen, weiß aber net ob es daran liegt, könnte auch sein daß es mit AND funktioniert...

lässt du alle Mysql-Fehlermeldungen anzeigen?

Malte
07.09.2002, 19:00
Tabellenstruktur:

id int(2) Nein auto_increment
verein varchar(50) Nein
siege int(2) Nein 0
unentschieden int(2) Nein 0
niederlagen int(2) Nein 0
tore int(4) Nein 0
gegentore int(4) Nein 0
pluspunkte int(3) Nein 0
minuspunkte int(3) Nein 0
tordiff int(4) Nein 0
punktediff int(3) Nein 0
saison varchar(20) Nein


Die Daten

17 Ahlener SG 0 0 1 18 23 0 2 -5 -2 BL220022003
18 Concordia Delitzsch 0 0 1 28 31 0 2 -3 -2 BL220022003
19 Dessauer HV 1996 0 0 0 0 0 0 0 0 0 BL220022003
20 Eintracht Hildesheim 1 0 0 33 24 2 0 9 2 BL220022003
21 HC Empor Rostock 0 0 0 0 0 0 0 0 0 BL220022003
22 HSG Augustdorf / Hövelhof 1 0 0 31 28 2 0 3 2 BL220022003
23 HSG Bielefeld 0 0 0 0 0 0 0 0 0 BL220022003
24 HSG Tarp-Wanderup 0 0 1 24 31 0 2 -7 -2 BL220022003
25 Reinickendorfer Füchse 0 0 1 24 33 0 2 -9 -2 BL220022003
26 HSG Varel 0 0 0 0 0 0 0 0 0 BL220022003
27 Stralsunder HV 0 0 0 0 0 0 0 0 0 BL220022003
28 SV Anhalt Bernburg 0 0 0 0 0 0 0 0 0 BL220022003
29 SV Post Schwerin 0 0 0 0 0 0 0 0 0 BL220022003
30 TSV Altenholz 0 0 0 0 0 0 0 0 0 BL220022003
31 TuS Spenge 1 0 0 23 18 2 0 5 2 BL220022003
32 TV Emsdetten 0 0 0 0 0 0 0 0 0 BL220022003
33 USV Cottbus 0 0 0 0 0 0 0 0 0 BL220022003
34 VfL Fredenbeck 1 0 0 31 24 2 0 7 2 BL220022003


Hier mein Code

<?
include("config.php");

$sql = "SELECT * FROM m1table WHERE saison = 'BL220022003' ORDER by punktediff,tordiff";
$run = mysql_query($sql) or die ("Gah! " . mysql_errno() . ": " . mysql_error() . "\n\n");
$i=0;
while($row = mysql_fetch_array($run)) {
$i++;
?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $row[1]; ?></td>
<td align="center"><?php echo $row[2]; ?></td>
<td align="center"><?php echo $row[3]; ?></td>
<td align="center"><?php echo $row[4]; ?></td>
<td align="center"><?php echo $row[5]; ?>:<?php echo $row[6]; ?></td>
<td align="center"><?php echo $row[7]; ?>:<?php echo $row[8]; ?></td>
<td align="center"><?php echo $row[9]; ?></td>
</tr>

<?
}
?>


Hier das Ergebnis:

Platz Verein S U N Tore Punkte Tordiff
1 Reinickendorfer Füchse 0 0 1 24:33 0:2 -9
2 HSG Tarp-Wanderup 0 0 1 24:31 0:2 -7
3 Ahlener SG 0 0 1 18:23 0:2 -5
4 Concordia Delitzsch 0 0 1 28:31 0:2 -3
5 Dessauer HV 1996 0 0 0 0:0 0:0 0
6 HC Empor Rostock 0 0 0 0:0 0:0 0
7 HSG Bielefeld 0 0 0 0:0 0:0 0
8 HSG Varel 0 0 0 0:0 0:0 0
9 Stralsunder HV 0 0 0 0:0 0:0 0
10 SV Anhalt Bernburg 0 0 0 0:0 0:0 0
11 SV Post Schwerin 0 0 0 0:0 0:0 0
12 TSV Altenholz 0 0 0 0:0 0:0 0
13 TV Emsdetten 0 0 0 0:0 0:0 0
14 USV Cottbus 0 0 0 0:0 0:0 0
15 HSG Augustdorf / Hövelhof 1 0 0 31:28 2:0 3
16 TuS Spenge 1 0 0 23:18 2:0 5
17 VfL Fredenbeck 1 0 0 31:24 2:0 7
18 Eintracht Hildesheim 1 0 0 33:24 2:0 9



Umgekehrt würde mir die Tabelle gefallen :>

Jonas
07.09.2002, 19:18
Probier:

SELECT * FROM m1table WHERE saison = 'BL220022003' ORDER by punktediff DESC, tordiff DESC