Hallo zusammen,
ich habe folgendes Problem:
Ich möchte gern ein Script bauen, was aus einer Datenbank ausliest wieviele Punkte in einem großen Pott vorhanden sind und wieviele User vorhanden sind, die Anrecht auf Punkte haben und wieviele Punkte sie bekommen.
Dann soll das Script solange Punkte vorhanden sind diese gleichmäßig auf die User verteilen.
Wenn keine Punkte mehr da sind, dann soll das Script beendet werden und die restlichen User bekommen erst beim nächsten Durchlauf wieder Punkte (sofern welche im Pott sind).
Wenn keine User mehr da sind, die noch Punkte bekommen, dann sollen die Punkte im Pott verbleiben.
Eigentlich relativ einfach... Aber die Umsetzung scheitert - hab da wohl einen Denkfehler...
Hier mal mein Ansatz:
Das Problem ist, dass die User nicht gleichmäßig die Punkte bekommen und das mehr Punkte verteilt werden als im Pott sind....
Wo denke ich zu verkehrt?
ich habe folgendes Problem:
Ich möchte gern ein Script bauen, was aus einer Datenbank ausliest wieviele Punkte in einem großen Pott vorhanden sind und wieviele User vorhanden sind, die Anrecht auf Punkte haben und wieviele Punkte sie bekommen.
Dann soll das Script solange Punkte vorhanden sind diese gleichmäßig auf die User verteilen.
Wenn keine Punkte mehr da sind, dann soll das Script beendet werden und die restlichen User bekommen erst beim nächsten Durchlauf wieder Punkte (sofern welche im Pott sind).
Wenn keine User mehr da sind, die noch Punkte bekommen, dann sollen die Punkte im Pott verbleiben.
Eigentlich relativ einfach... Aber die Umsetzung scheitert - hab da wohl einen Denkfehler...
Hier mal mein Ansatz:
PHP:
$anzahl_punkte = 100; // Datenbank auslesen kann ich :)
for($i = $anzahl_punkte;$i>= 1;$i--) {
$qry = new Query("SELECT
`user`.`id`
`punkte`.`menge`-`punkte`.`geliefert` as `ausstehend`
FROM
`user`
Inner Join `punkte` ON `user`.`tniid` = `punkte`.`tniid`
WHERE `punkte`.`check` = '1'
AND `punkte`.`menge`-`punkte`.`geliefert` != 0");
if($qry->error()) {
die($qry->getError());
}
if($qry->numRows() >= 1) {
while($fetch = $qry->fetch()) {
# Gib User $fetch['id] den Punkt
}
} else break;
}
Das Problem ist, dass die User nicht gleichmäßig die Punkte bekommen und das mehr Punkte verteilt werden als im Pott sind....
Wo denke ich zu verkehrt?