Seite 1 von 1
Sortierfunktion
Verfasst: 20.09.2002 01:32
von Condor
Hallo,
ich habe eine Fussballtabelle, die ich jetzt nach verschiedenen Faktoren sortieren lassen kann. So sieht sie z.B aus:
Platz | Verein | Tore | Punkte | Gesamt |
----------------------------------------------
1 | Borussia Dortmund | 23 | 30 | 80 |
2 | Bayer Leverkusen | 27 | 28 | 78 |
Jetzt wurde nach 'Gesamt' sortiert. Wenn ich jetzt aber auf 'Tore' klicken würde, sollte nach den Toren sortiert werden. Dies ist aber nicht das Problem. Dann wird das nämlich so ausgegeben:
Platz | Verein | Tore | Punkte | Gesamt |
----------------------------------------------
2 | Bayer Leverkusen | 27 | 28 | 78 |
1 | Borussia Dortmund | 23 | 30 | 80 |
Es sollte aber so aussehen:
Platz | Verein | Tore | Punkte | Gesamt |
----------------------------------------------
1(2) | Bayer Leverkusen | 27 | 28 | 78 |
2(1) | Borussia Dortmund | 23 | 30 | 80 |
Es geht auch um die Klammern. Die Klammern geben den Platz für die Gesamtwertung aus. Wie mache ich das, damit die plätze weiter gereicht werden an einen anderen Sortiervorgang ?
Verfasst: 20.09.2002 01:39
von itst
Es ist die Frage, woher das Script wissen soll, welche Platzierung es in der Klammer ausgeben soll.
In Deinem Beispiel wurde zuerst nach "Gesamt" sortiert und dann nach "Tore".
Man könnte das z. B. so machen, das man die letzte Sortierung per Parameter übergibt (...?old_sort=gesamt) und das Script dann sowohl nach der alten Sortierung sortiert und auch nach der neuen. Die Anzeige orientiert sich dann nach der neuen und ziegt aber in Klammern die der alten an.
Sorry, ist ein bißchen kompliziert geraten, mein Satz da oben. Hast Du verstanden, was ich meine?
Edit:
Sach mal, kann man Dein Werk - diese Bundesliga-Geschichte oder was auch immer - irgendwo schon bestaunen?
Verfasst: 20.09.2002 02:19
von Condor
Hallo,
deinen Satz habe ich schon verstanden. Danke erstmal für deine Hilfe. In Klammern soll immer die Gesamtwertung stehen. Und mein Werk kann man leider noch nicht bestaunen. Ich habe nicht viel Zeit dafür und da ich ein Anfänger bin dauert es auch noch ein wenig länger. Dann muss ich auch noch die ganzen Daten, die ich brauche, aus Bücher und dem Internet filtern. Ist halt zeitaufwendig, deshalb habe ich mir eine Zeitspanne von 1 Jahr dafür reseviert. Ich hoffe du weisst jetzt wie ich das mit dem Script meine.
Verfasst: 21.09.2002 14:28
von Pyramide
Wenn ich das richtig verstanden habe, steht die Zahl in Klammern ja in der Datenbank. Dann lässt du einfach eine Zählervariable mitlaufen, während du das Resultset durchläufst:
Code: Alles auswählen
$platz=1;
while($row=mysql_fetch_array($result))
{
echo "$platz($row[Platz])";
//die anderen Spalten ausgeben...
$platz++;
}
Verfasst: 22.09.2002 23:49
von Condor
Die Zahlen in Klammern stehen nicht in der DB. Die muss ich aber wahrscheinlich trotzdem da rein bringen. Das schaffe ich aber schon alleine. Wenn ein User jetzt auf den Link klickt, durch den er jetzt zu dieser Wertung gelangt, soll das Script nach der Gesamtwertung sortieren. Und erst dann kann man nach anderer Kriterien sortieren lassen. Deshalb weiss man z.B nicht ob Bayer Leverkusen auf Platz 1 oder 2 etc. ist. Die Werte verändern sich ständig. Aber danke erstmal für eure Antworten.
Verfasst: 23.09.2002 18:04
von Pyramide
Wenn die Zahlen nicht in der DB stehen - woher weiß dein Script denn in der zweiten Abfrage vom erster Beitrag welche Zahl in der ersten Spalte stehen muss?
Verfasst: 24.09.2002 01:28
von Condor
Die Daten in der DB werden immer aktualisiert, deshalb weiss man ja nie den Gesamtwert. Wenn ich aber nun auf den Link klicke, wird eine Seite generiert, die automatisch nach dem Gesamtwert sortiert. Der Gesamtwert wird aus mehreren Faktoren zusammengezählt und in die DB geschrieben. Nun wird jetzt der Platz nach Gesamtwert in die DB geschrieben. Wenn man jetzt auf ein anderes Kriterium klickt sollte es so sein wie ich es im vorherigen Beitrag geschrieben habe. Ich hoffe das ihr es verstanden habt, ich weiss ich erkläre es immer komplizierter als es ist

Verfasst: 24.09.2002 18:15
von Pyramide
Condor hat geschrieben:Die Zahlen in Klammern stehen nicht in der DB.
Condor hat geschrieben:Nun wird jetzt der Platz nach Gesamtwert in die DB geschrieben.
Was denn nun? Ja oder Nein?
Wenn der Wert drinsteht, kannst du ja den von mir geposteten Code verwenden.
Verfasst: 24.09.2002 22:50
von itst
Was Du bräuchtest, wäre eine Möglichkeit zu sagen, an welcher Stelle in der Datenbank ein Eintrag steht. Sowas gibt SQl leider nicht her.
So wie ich das sehe, musst Du auf meine o. g. Methode zurückgreifen.
Verfasst: 25.09.2002 02:31
von Condor
Hallo,
die Zahl wird immer aktualisiert, also sie verändert sich immer. Das wollte ich damit sagen. Sie wird automatisch in die DB geschrieben, sobald ein User das Script aktiviert hat. Ich werde jetzt ein bisschen mit euren Methoden herumspielen, vielleicht kommt ja was raus. Vielen Dank für eure Hilfe.