Deblin: SELECT in einer Schleife schlecht

Beitrag lesen

das kommt drauf an, welche logik sich hinter dem php script verbirgt. wenn du es mit einem uodate lösen willst, dann muss auch dort diese lpgik abgebildert werden. aber ohne genau zu wissen, was dabei passiert,  ist es schwer, dir deine frage zu beantworten.

Ilja

Dachte ich hätte das mit dem Stück Pseudocode ein wenig verdeutlicht. Ist denn klar, was ich genau erreichen möchte?

Es sollen aus einer Tabelle alle Datensätze ausgelesen werden, die während des Tages zusammengekommen sind.

Anhand der ausgelesenen User-IDs brauche ich Statistiken (sagen wir das sind z.B. Rohstoffe in einem Strategiespiel .. Holz, Stein, Eisen).

Jetzt sind die Statistiken ausgelesen und werden verarbeitet.

z.B.:
User1 Holz = 200
User2 Holz = 300

Da User2 mehr als User1 hat bekommt User2 1 Punkt.... so läuft die ganze Verarbeitung ab, bis ein Gewinner feststeht. Dann wird ein Update in der Datenbank gemacht und der KAmpf für den User2 gewertet, da dieser isngesamt "gewonnen" hat.

Also hier nochmal wie ich mir das vorstellen könnte:

Tabelle User:

id (PK)
name (Unique)
...

Tabelle Stats:

id (PK)
u_id (FK)
eisen
holz
stein

Tabelle Kampf

id (PK)
u1 (FK)
u2 (FK)
gewinnerkampf_id

Das ist also die vereinfachte Version. Jetzt soll Nachts um 04:32 z.B. wenn alle normalerweise brav schlafen die Tabelle Kampf ausgelesen werden und die User die sich gegenüberstehen einen "Kampf" haben bei dem die Tabelle Stats mit einbezogen wird.

Verarbeitung PHP-Seitig ist nebensächlich... da werden einige Additionen, Subtraktionen, usw. gemacht. Das was mir wichtig ist, ist das so hinzubekommen, dass ich innerhalb einer Schleife keine Update- oder SELECT-Abfragen habe.

Weil kann mir vorstellen, dass bei 2000 Datensätzen in Tabelle Kampf und dann pro Datensatz 2 SELECT Abfragen  um die Stats auszulesen + 1 UPDATE Abfrage der Server erstmal gut am Arbeiten wäre.

Kann man das geschickter lösen?