Sortierfunktion

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Sortierfunktion

Beitrag 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 ?
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag 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?
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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++;
}
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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?
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag 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 :-)
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag 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.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“