Beiträge von FiedlWdd

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

    Für einen anderen Nutzer hier im Forum bin ich eh gerade dabei alles auf PHP7 umzustellen, so dass ich das Tippspiel für PHP7 dann auch zur Verfügung stellen kann.

    Konntest du denn noch einmal alle Ergebnisse über den Dump ziehen? Also den entsprechenden Eintrag in der tpl_version-Tabelle verschieben und dann noch einmal den Button für die Ergebnisse klicken.

    In Zeile 41 der content/rangliste.dep.php müsstest du folgende Zeile suchen:

    PHP
    1. $deprl[$i]['schnitt'] = (is_null($ar_dep['punkte']) || is_null($ar_dep['ctdep']) ? 0 : $ar_dep['punkte'] / $ar_dep['ctdep']);


    und durch diese ersetzen:

    PHP
    1. $deprl[$i]['schnitt'] = (is_null($ar_dep['punkte']) || is_null($ar_dep['cttip']) ? 0 : $ar_dep['punkte'] / $ar_dep['cttip']);

    Dann wird der Schnitt wie gewünscht durch Punkte/Tipps berechnet.

    Du müsstest wie hier angegeben die Zeiten ändern, also jetzt nicht wie es dort steht, aber die Dateien und Zeilen mit den Abfragen sind es. Die Abfrage einfach komplett herausnehmen, eintragen lassen und dann wieder sperren. Und dann natürlich prüfen ob auch alle ihre Tipps richtig eingegeben haben.


    Die andere Variante ist über die Datenbank, wo du dir die User ID nimmst von jedem User, dann die Spiel ID vom jeweiligen Spiel und dann die Tipps. Wenn alle Tipps drin sind, dann einen DB Refresh durchführen und alles wird berechnet.

    Deshalb wird ja auch abgefragt ob NULL ist oder nicht, denn wenn NULL ist, dann gibt es zu dieser Bonusfrage noch keine Antworten. Wenn ihr aber schon überall antworten drin habt, mit answer 0, dann ist das natürlich klar das es nicht funktioniert (nur die Lösung von @DKeppi). Woher aber eure Datensätze kommen, weiß ich ja nicht, ich bin vom Grundskript ausgegangen.


    Also es werden nur noch die offenen Bonustipps und Spiele berücksichtigt.

    Ändert mal die Abfrage für die Bonusfragen so:

    PHP
    1. $sqlBonus = mysql_query("SELECT (SELECT pkt FROM ". $CONFIG['MYSQL']['PREFIX'] ."bonus_punkte tb2 WHERE tb2.bid = tb1.bid AND tb1.date < tb2.date ORDER BY tb2.date ASC LIMIT 1) AS pkt FROM ". $CONFIG['MYSQL']['PREFIX'] ."bonus_tipps tb1 LEFT JOIN ". $CONFIG['MYSQL']['PREFIX'] ."bonus_answers tb3 ON tb3.bid = tb1.bid WHERE tb1.usr = " . $_SESSION['s_id'] . " AND tb3.answer IS NULL GROUP BY tb1.bid");

    Dann sollte zumindest die Punktzahl stimmen.

    Ganz oben zu den anderen SQL-Abfragen kannst du in der content/sieger.php folgenden Code einfügen:

    PHP
    1. $sqlGamesRest = mysql_query("SELECT type FROM ". $CONFIG['MYSQL']['PREFIX'] ."spiele tb1 LEFT JOIN ". $CONFIG['MYSQL']['PREFIX'] ."ergebnisse tb2 ON tb2.spiel = tb1.id WHERE tb2.spiel IS NULL");$restGames = mysql_num_rows($sqlGamesRest);$restPoints = 0;while($rowGamesRest = mysql_fetch_array($sqlGamesRest)) { $restPoints += getPunkte('ERGEBNIS', $rowGamesRest['type']);}$sqlBonus = mysql_query("SELECT (SELECT pkt FROM ". $CONFIG['MYSQL']['PREFIX'] ."bonus_punkte tb2 WHERE tb2.bid = tb1.bid AND tb1.date < tb2.date ORDER BY tb2.date DESC LIMIT 1) AS pkt FROM ". $CONFIG['MYSQL']['PREFIX'] ."bonus_tipps tb1 LEFT JOIN ". $CONFIG['MYSQL']['PREFIX'] ."bonus_answers tb3 ON tb3.bid = tb1.bid WHERE tb1.usr = " . $_SESSION['s_id'] . " AND tb3.answer IS NULL GROUP BY tb1.bid");$restBonus = mysql_num_rows($sqlBonus);$restBonusPoints = 0;while($rowBonus = mysql_fetch_array($sqlBonus)) { $restBonusPoints += $rowBonus['pkt'];}


    Dann hast du vier Variablen zur Verfügung die du zum Beispiel in solche Sätze einbauen könntest:

    PHP
    1. echo 'Bei den restlichen ' . $restGames . ' Spielen kannst du noch maximal ' . $restPoints . ' Punkte erreichen.';
    2. echo '<br />';
    3. echo 'Du hast noch ' . $restBonus . ' offene Bonustipps, wo du maximal ' . $restBonusPoints . ' Punkte erreichen kannst.';

    Den letzten Codeteil kannst du wieder irgendwo in der content/sieger.php einbauen.

    Die möglichen Punkte des jeweiligen Nutzers oder von allen? Denn zum Beispiel bei den Bonustipps kann ja jeder unterschiedliche Punkte erhalten, je nachdem wann er diese abgegeben hat.

    Zuerst musst du den CKEditor hier downloaden, ich habe zum Beispiel das Standard Package. Alle Ordner die da drin sind - ausgenommen samples - kopierst du bitte in den include/scripts/ckeditor/-Ordner.


    In die m/index.php fügst du noch eine Zeile hinzu:

    HTML
    1. <script src="../include/scripts/ckeditor/ckeditor.js" type="text/javascript"></script>


    Und in der m/content/forum.erstellen.php überschreibst du denn script-Code mit folgendem:

    Code
    1. <script type="text/javascript"> CKEDITOR.replace( 'beitragEdit' ); </script>


    In der m/content/forum.thread.php kommt in Zeile 244 dann folgendes:

    Code
    1. <script type="text/javascript"> CKEDITOR.replace( 'beitragAntwort' ); </script>


    Und in der gleichen Datei wie eben, nur in Zeile 174 kommt das hier:

    Code
    1. <script> CKEDITOR.replace( 'beitragEdit' );</script>

    Für Punkt 3 musst du folgendes tun:


    Öffne die include/inc.content.php.


    Zeile 98 von:

    PHP
    1. header("location: ".$CONFIG['PATH'].gLink($RUNTIME['PATH'][0]."/admin/spiele/gruppen/"));

    nach

    Code
    1. header("location: ".$CONFIG['PATH'].gLink($RUNTIME['PATH'][0]."/admin/admin/updatedata/"));


    Zeile 601 von:

    PHP
    1. include "content/admin.spiele.php";

    nach

    PHP
    1. include "content/admin.results.update.php";


    Und in der content/admin.results.update.php fügst du über

    PHP
    1. require_once "include/inc.backup.mysql.php";require_once "include/mysqldbexport.class.php";

    das ein

    PHP
    1. if($RUNTIME['PATH'][1] == '') {
    2. header ("location: ". $CONFIG['PATH'] . gLink($RUNTIME['PATH'][0] ."/admin/updatedata/"));
    3. }