Das zweite Maximum auswählen?

lisali

Erfahrenes Mitglied
Hallo,

ich wollte gerne eine Ranking-Liste machen. Also jeder User stellt Fotos rein und die werden nach positiv und negativ bewertet.

Wenn der User z.B. 20 positive Bewertungen hat und 10 negative, hat er einen Bewertungsstand von 10.

Und jetzt möchte ich eine Platzierung erstellen von den Top 10 Fotos. Wenn man annimmt, dass der Bewertungsstand von 10 der höchste wäre, weil die anderen weniger haben, wäre somit 10 = Platz 1.

Aber wie mache ich das mit PHP oder MySQL? Mir würde nur einfallen, dass ich diese Zahl (die 10) in die DB speichere und dann per MAX-Select-Befehl mit MySQL auswähle. Aber was ist dann mit dem "zweiten Maximum", dem dritten, vierten... usw?

Vielen Dank im Voraus!
 
Hallo!

Nun, wenn Du die Punkte eh in der Datenbank hast, dann lese sie doch in umgekehrter Reihenfolge aus und setzte das Limit auf 10.

Gruss Dr Dau
 
Okay, danke. Das mit der Ranking-Liste habe ich hinbekommen.

Aber was mache ich, wenn ich meinen eigenen Rang rausfinden möchte? Wenn ich z.B. unter Hunderten auf Bewertungsstand 10 wäre und Platz 1 wäre = 1000?

Ich müsste ja meinen Bewertungsstand mit allen anderen vergleichen, die es gibt. Oder gibt es da andere Möglichkeiten?
 
Meine bisherige Anwort darauf ist, dass man die Rangliste erstellen muss. So erhält man dann den Rang. Leider hab ich noch nichts anderes sinnvolles gefunden (selbe Frage in Coders Talk in meinem Thread =))
 
Hi

du müsstest dir warscheinlich wirklich alles anzeigen lassen und dann prüfen, ob der aktuelle Rang deiner ist.
edit: Alternativ gibt es noch folgende Möglichkeit:
Du fragst deine Punktzahl ab, und anschließen suchst du alle Datenbankeinträge heraus, die MEHR Punkte haben als du.
Mit mysql_num_rows solltest du dann deinen Rang ermitteln können.
 
Zuletzt bearbeitet:
Naja, es gibt mehrere Möglichkeiten wie du das machen kannst, wobei es mit alles vergleichen der schlechteste wäre.

Um dir einen konkreten Vorschlag machen zu können, müsste man deinen Code kennen.

Gruß

Sascha
 
Also, ich bin da noch ziemlich offen, was den Code und die SQL-Struktur angeht und gerne änderungsbereit für effektiveres/effizienteres.

Ich habe eben diese user_img-Tabelle und da gibt es die Spalten

"rankingUp" --> Anzahl positiver Bewertungen
"rankingDown" --> Anzahl negativer Bewertungen
"count" --> ( rankingUp - rankingDown )

Was wäre denn am empfehlenswertesten? Ich hab auch überlegt, dass man viele Dinge ja auch in PHP machen könnte, aber ich glaube mal gelesen zu haben, dass es immer sinnvoller wäre Dinge direkt über MySQL-Befehle zu machen.
 
Zurück