Dplus Geschrieben 25. August 2011 Geschrieben 25. August 2011 Hallo zusammen, habe für ein Tippspiel das in PHP geschrieben ist, eine Erweiterung geschrieben. Es stellt eine Strafkasse für vergessene Tipps dar. Die Höhe der Strafe ist in der Config zur Zeit auf, 0,50€ eingestellt. Sobald an einem Spieltag ein Tipp vergessen wird, werden 0,50€ dem jeweiligem User angerechnet. Hierbei ist es egal ob er einen oder mehrere Tipps vergessen hat, es werden immer nur 0,50€ hinzugerechnet. Sobald ein Spiel vergessen wird, zählt er die 0,50 dazu, jedoch zählt er auch für jeden vorherigen Spieltag der vor dem aktuellen Spieltag liegt 0,50 dazu, obwohl getippt wurde. Hab jetzt in der Testumgebung 4 Spieltage komplett getippt und abgeschlossen: Strafkasse = 0,00€ Dann habe ich den 5ten Spieltag ein Spiel ausgelassen zu Tippen: Strafkasse = 2,50€ Heißt also er hat die Spieltage 1 - 4 auch als nicht getippt gewertet, warum auch immer. Dann habe ich Spieltag 6 - 10 getippt und abgeschlossen: Strafkasse == 2,50€ (hier hat er also wieder nichts berechnet was ja korrekt ist) Sobald ich den an Spieltag 11 einen Tipp auslasse, setzt er: Strafkasse = 5,50€ (also Spieltag 6 - 11) wieder dazugerechnet. Komisches Problem, das ich im Moment nicht ganz nachvollziehen kann. Vieleicht will ja mal jemand drüberschauen ob er nen Denkfehler findet . Hier mal der Code des eigentlichen Script: <!-- Mod Strafkasse <?php $aktsptg = AktuellerSpieltag(); $usertipcount = getMissingUserTipps(); $last_sptg = $aktsptg - 1; if ($last_sptg < 1) $last_sptg = 1; if ($last_sptg >= 1) { $x = 0; for ($y = 1; $y <= $last_sptg; $y++) { $query_spiele = mysql_query('SELECT id FROM '.$tbl['spiele'].' WHERE liga = '.$saison['liga'].' AND saison = '.$saison['jahr2'].' AND spieltag <= '.$last_sptg); $anzahl_spiele = mysql_num_rows($query_spiele); while ($row_spiele = mysql_fetch_array($query_spiele)) { $query_tipps = mysql_query('SELECT id FROM '.$tbl['tipps'].' WHERE u_id = '.$_SESSION['s_user'].' AND s_id = '.$row_spiele['id']); $anzahl_tipps = mysql_num_rows($query_tipps); if (!$anzahl_tipps) $fehlendes_game = 1; } if ($fehlendes_game == 1) $x++; unset ($fehlendes_game); } $strafzahlung = number_format($zusatz_betrag * $x, 2, ',', '.'); $update = mysql_query('UPDATE '.$tbl['user'].' SET strafkasse = "'.$strafzahlung.'" WHERE id = '.$_SESSION['s_user']); $query_zahlung = mysql_query('SELECT id, strafkasse FROM '.$tbl['user'].' WHERE id = '.$_SESSION['s_user']); $row_zahlung = mysql_fetch_array($query_zahlung); } ?> Ende Mod Strafkasse --> <?php if ($strafkasse['show'] == TRUE) { ?> <tr><td colspan="2">Strafkasse: <font color="#ff0000"><b><?php echo $row_zahlung['strafkasse']; ?></b></font> €</td></tr> <?php } ?>[/php] Hoffe ich konnte mein Anliegen verständlich rüberbringen Zitieren
Base4u Geschrieben 25. August 2011 Geschrieben 25. August 2011 Du verwendest doch die Methode getMissingUserTipps(); und speicherst den Wert in eine Variable $usertipcount doch warum verwendest du die nicht? Wenn ich den Methodennamen anschauen, sollte es die Anzahl der vergessenen Tipps eines User liefern. Dann musst du doch nur noch $usertipcount * 0.5 machen und dann hast du doch die Anzahl???? Oder verstehe ich dich da falsch? Zitieren
Dplus Geschrieben 26. August 2011 Autor Geschrieben 26. August 2011 Hab das Problem gefunden. Die Zeile AND spieltag <= '.$last_sptg); habe ich in folgende geändert AND spieltag = '.$y); Jetzt zählt das Script die Strafen ordentlich hoch. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.