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!

    Ä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. }

    Die Abfrage für die Navi muss so sein:

    PHP
    1. $sql = mysql_query(" SELECT tb1.* FROM ". $CONFIG['MYSQL']['PREFIX'] ."rangliste_". $type ." tb1 LEFT JOIN ". $CONFIG['MYSQL']['PREFIX'] ."users tb2 ON tb2.id = tb1.uid WHERE tb1.grpid = '".$grp."' AND tb2.bezahlt = 1");


    Führe mal die Abfrage direkt in der Datenbank aus:

    SQL
    1. SELECT tb1.* FROM emtipp_rangliste_grp_games tb1 LEFT JOIN emtipp_users tb2 ON tb2.id = tb1.uid WHERE tb1.grpid = '4' AND tb2.bezahlt = 1 ORDER BY tb1.platz ASC LIMIT 0,10

    Die ID deiner Gruppe dann natürlich anpassen.
    Ist der nicht bezahlte User da auch noch mit dabei?

    Am besten in der function wieder die Funktion returnGrpRangliste() kopieren und einen neuen Namen vergeben, den du dann in der Datei aufrufst.


    Darin musst du dann die zwei Abfragen erweitern:


    PHP
    1. $sql = mysql_query("
    2. SELECT tb1.*
    3. FROM ". $CONFIG['MYSQL']['PREFIX'] ."rangliste_". $type ." tb1
    4. LEFT JOIN ". $CONFIG['MYSQL']['PREFIX'] ."users tb2 ON tb2.id = tb1.uid
    5. WHERE tb1.grpid = '".$grp."'
    6. AND tb2.bezahlt = 1
    7. ORDER BY tb1.platz ASC
    8. LIMIT ". $begin .",". $length);

    Einmal etwas weiter oben in der Funktion für die Abfrage und einmal unten in der Funktion für die Navigation.

    Dafür musst du nur folgende Änderungen vornehmen.


    Zeile 159 von

    HTML
    1. <td class="tabHeaderMid" align="center">Abgegeben am</td>

    ändern in

    HTML
    1. <td class="tabHeaderMid" align="center">Abgegeben am (max. Punkte)</td>


    Unter Zeile 209

    PHP
    1. $datum = date("d.m.y H:i",$row['date']);

    fügst du das drunter

    PHP
    1. $maxpkt = admin_LoadBonusPunkte($frage['id'],$row['date']);


    Das Array ab Zeile 230

    PHP
    1. $daten[] = Array ( 'platz' => $platz, 'tippername' => $tippername, 'flage' => $flage, 'antwort' => $antwort, 'datum' => $datum, 'timestamp' => $row['date'], 'punkte' => $punkte );

    ergänzt du so

    PHP
    1. $daten[] = Array ( 'platz' => $platz, 'tippername' => $tippername, 'flage' => $flage, 'antwort' => $antwort, 'datum' => $datum, 'timestamp' => $row['date'], 'punkte' => $punkte, 'maxpunkte' => $maxpkt );


    Und aus Zeile 273

    PHP
    1. <?php echo $daten[$x]['datum']; ?>

    wird das hier

    PHP
    1. <?php echo $daten[$x]['datum']." (" .$daten[$x]['maxpunkte'].")"; ?>

    Ganz oben unter den anderen SQL-Anweisungen kannst du noch diese Zeilen hinzufügen:

    PHP
    1. $sqlLastUpdate = mysql_query("SELECT DATE_FORMAT(lastupdate, '%d.%m.%Y, %H:%i Uhr') AS lastupdate FROM ". $CONFIG['MYSQL']['PREFIX'] ."tbl_versions WHERE tablename = 'emtipp_ergebnisse'");$rowLastUpdate = mysql_fetch_array($sqlLastUpdate);$lastUpdate = $rowLastUpdate['lastupdate'];


    Danach kannst du über

    PHP
    1. echo $lastUpdate;


    die Variable dort anzeigen lassen wo du möchtest. Das Format ist "16.06.2016, 09:40 Uhr".