hallo. ich arbeite an einer PHP-Online Liga für einen egoshooter.
bisher funktionierte es so, dass es eine tabelle für die user und eine für die matches gab. die user hatten standardgemäß 1000 punkte, und wenn einer ein match gewonnen hatte, wurde die usertabelle geupdated und dann stand in seiner usertabelle eben z.B. 1004 punkte. die rankingseite zu machen war dann unkompliziert, einfach die benötigten infos der "user"tabelle selektieren und "ORDER BY POINTS" machen.
ich möchte das system aber ändern, und zwar dass nun nicht mehr die nach jedem match neu fest gelegten punkte eingetragen werden sondern ich habe mir eine funktion gebaut, die in der matches tabelle nachschaut wieviele spiele der spieler gespielt hat, wieviele und wie hoch gewonnen hat und demnach die gesamtpunktzahl des spielers berechnet wird. Ich könnte problemlos eine funktion bauen die z.B. "get_playerpoints($userID)" heisst und für die userIDs die punkte ermittelt.
(ich mache das deshalb so, da evtl gespielte matches, die aber ungültig waren z.B. wegen cheatens gelöscht werden könnten, und der admin dann immer dem user manuell die beim match errungenen punkte abziehen müsste)
leider hätte ich dann das problem, dass ich bei der rankingsanzeige nicht mehr "order by points" angeben muss, da dieser wert eigentlich garnicht mehr existiert. habt ihr eine idee wie man es trotzdem hinbekommen könnte ? das problem liegt auch darin dass erstmal für alle user der punktestand ermittelt werden muss, und dann eine sortierung erfolgen muss. wäre es z.B. möglich dass man quasi ein array erstellt dass die userIDs in der richtigen punktereihenfolge (nachdem für alle userIDs die punkte ermittelt wurden) anzeigt und dann für jede userID eine select anfrage gemacht wird ?
bisher funktionierte es so, dass es eine tabelle für die user und eine für die matches gab. die user hatten standardgemäß 1000 punkte, und wenn einer ein match gewonnen hatte, wurde die usertabelle geupdated und dann stand in seiner usertabelle eben z.B. 1004 punkte. die rankingseite zu machen war dann unkompliziert, einfach die benötigten infos der "user"tabelle selektieren und "ORDER BY POINTS" machen.
ich möchte das system aber ändern, und zwar dass nun nicht mehr die nach jedem match neu fest gelegten punkte eingetragen werden sondern ich habe mir eine funktion gebaut, die in der matches tabelle nachschaut wieviele spiele der spieler gespielt hat, wieviele und wie hoch gewonnen hat und demnach die gesamtpunktzahl des spielers berechnet wird. Ich könnte problemlos eine funktion bauen die z.B. "get_playerpoints($userID)" heisst und für die userIDs die punkte ermittelt.
(ich mache das deshalb so, da evtl gespielte matches, die aber ungültig waren z.B. wegen cheatens gelöscht werden könnten, und der admin dann immer dem user manuell die beim match errungenen punkte abziehen müsste)
leider hätte ich dann das problem, dass ich bei der rankingsanzeige nicht mehr "order by points" angeben muss, da dieser wert eigentlich garnicht mehr existiert. habt ihr eine idee wie man es trotzdem hinbekommen könnte ? das problem liegt auch darin dass erstmal für alle user der punktestand ermittelt werden muss, und dann eine sortierung erfolgen muss. wäre es z.B. möglich dass man quasi ein array erstellt dass die userIDs in der richtigen punktereihenfolge (nachdem für alle userIDs die punkte ermittelt wurden) anzeigt und dann für jede userID eine select anfrage gemacht wird ?
Kommentar