Ranglistenmail nicht korrekt sortiert

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!

  • Hallo Ihr Lieben,


    ich habe seit ein paar Spieltagen das Ranglisten Addon für die PHP 7 Version im Einsatz.
    Beim letzten Spieltag gab es jeweils zwei Tipper mit der selben Punktzahl. Leider wird nicht die korrekte Rangliste gesendet.


    Nachfolgend mein Quelltext:


    Quelltext:
    <?php
    header('Content-Type: text/html; charset=utf-8');



    #########################################################################################
    #
    # Ranglistenmail Addon für BuLiTipp 4.x
    # ranglisten_mail.php (Cronjob)
    #
    # Letzte Änderung: 09.02.2012
    #
    #########################################################################################



    define("|","|");



    # Include-Dateien einbinden
    require_once("../include/database.inc.php");
    require_once("../include/config.inc.php");
    require_once("../include/functions.inc.php");



    if($_GET['pw'] != $extern['pw'])
    {
    echo "Kein Login!";
    }
    elseif ($_GET['pw'] == $extern['pw'])
    {



    echo "Script Aufruf erfolgreich... <br><br>";



    $datum = date("d.m.Y");
    $uhrzeit = date("H:i");
    echo $datum," - ",$uhrzeit," Uhr <br><br>";



    // Connect zur Datenbank
    $MYSQLI = mysqli_connect($db['server'],$db['user'],$db['pass'],$db['name']);



    $query_spieltag = "SELECT *"
    ." FROM ". $tbl['precalc']
    ." WHERE type = 'user_ranking'"
    ." AND liga = ". $saison['liga']
    ." AND saison = '". $saison['jahr2'] ."'"
    ." ORDER BY spieltag DESC"
    ." LIMIT 0,1";
    $result_spieltag = mysqli_query($MYSQLI, $query_spieltag);
    $anzahl_spieltag = mysqli_num_rows($result_spieltag);
    $fetch_spieltag = mysqli_fetch_array($result_spieltag);
    $abgeschlossen = SpieltagFinished($fetch_spieltag['spieltag']);



    if ($abgeschlossen)
    {



    $query_verschickt = "SELECT rangliste"
    ." FROM ". $tbl['precalc']
    ." WHERE liga = ". $saison['liga']
    ." AND saison = '". $saison['jahr2'] ."'"
    ." AND spieltag = ". $fetch_spieltag['spieltag'];
    echo $query_verschickt;
    $result_verschickt = mysqli_query($MYSQLI, $query_verschickt);
    $anzahl_verschickt = mysqli_num_rows($result_verschickt);
    $fetch_verschickt = mysqli_fetch_array($result_verschickt);



    if ($fetch_verschickt['rangliste'] == '0')
    {
    $query_user = "SELECT user, email"
    ." FROM ". $tbl['user']
    ." WHERE aktiv = 1"
    ." AND ranglistenmail = 1"
    ." AND deleted = 0";
    $result_user = mysqli_query($MYSQLI, $query_user);
    $anzahl_user = mysqli_num_rows($result_user);



    if ($anzahl_user == "0") {
    echo "Ranglistenmail wird an keinen User verschickt. <br><br>";
    } else {
    echo "Ranglistenmail wird an $anzahl_user User verschickt. <br><br>";
    }



    while ($fetch_user = mysqli_fetch_array($result_user))
    {
    $query = "SELECT ran.user_id, ran.rang_2day, ran.tipps_2day, ran.pkt_2day, ran.user_name, ran.fav, "
    ." pre.saison, pre.liga, pre.spieltag"
    ." FROM ". $tbl['saison_ranking'] . " as ran"
    ." INNER JOIN ". $tbl['precalc'] ." as pre ON pre.id = ran.precalc_id"
    ." INNER JOIN ". $tbl['user'] ." as usr ON usr.id = ran.user_id"
    ." WHERE pre.liga = ". $saison['liga']
    ." AND pre.saison = '". $saison['jahr2'] ."'"
    ." AND pre.spieltag = ". $fetch_spieltag['spieltag']
    ." ORDER BY ran.pkt_2day DESC";
    $result = mysqli_query($MYSQLI, $query);
    $anzahl = mysqli_num_rows($result);



    $empfaenger = $fetch_user['email'];
    $betreff = $CONFIG['SITENAME'] ." | Rangliste | ". $fetch_spieltag['spieltag'] .". Spieltag";
    $from = "From: ". $support['absender'] ."\n";
    $from .= "Content-Type: text/html\n";
    $text = "Hallo ". $fetch_user['user'] .", <br /> <br />
    in dieser eMail findest du die Rangliste nach dem <strong>". $fetch_spieltag['spieltag'] .". Spieltag</strong>:
    <br /> <br /> <hr />";
    $text .= "<table>
    <tr>
    <td style='width: 50px; text-align: center;'><strong>Platz</strong></td>
    <td style='width: 200px;'><strong>Name</strong></td>
    <td style='width: 15px; text-align: center;'><strong>Punkte</strong></td>
    </tr>";



    while ($fetch = mysqli_fetch_array($result))
    {
    $text .= "<tr>";
    $text .= "<td style='text-align: center;'>". $fetch['rang_2day'] ."</td>";
    $text .= "<td>". $fetch['user_name'] ."</td>";
    $text .= "<td style='text-align: center;'>". $fetch['pkt_2day'] ."</td>";
    $text .= "</tr>";
    }



    $text .= "</table>";
    $text .= "<br /> <br /> <hr />";
    $text .= "<i>Diese eMail wurde automatisch von <a href='". $CONFIG['URL'] ."'>". $CONFIG['URL'] ."</a> erstellt. Solltest du sie unerwartet bekommen haben, dann lösche und ignoriere sie bitte.</i>";



    mail($empfaenger, $betreff, $text, $from);



    echo "Versendet an: $empfaenger <br>";
    }



    $update_precalc = "UPDATE ". $tbl['precalc']
    ." SET rangliste = '1'"
    ." WHERE liga = ". $saison['liga']
    ." AND saison = '". $saison['jahr2'] ."'"
    ." AND spieltag = ". $fetch_spieltag['spieltag'];
    $result_update_precalc = mysqli_query($MYSQLI, $update_precalc);
    } else {
    echo "Die Rangliste wurde für diesen Spieltag bereits verschickt." . $tbl['precalc'];
    }
    }else {
    echo "Spieltag noch nicht abgeschlossen. Keine Ranglistenmail versendet.";
    }
    }
    ?>






    Vielen Dank im Voraus für eure Hilfe.


    Gruß
    Flo

  • erledigt.


    Zeilen 79 + 80
    $query = "SELECT ran.user_id, ran.platz_2day, ran.rang_2day, ran.tipps_2day, ran.pkt_2day, ran.user_name, ran.fav, "
    ." pre.saison, pre.liga, pre.spieltag"


    In Zeile 100 von
    ." ORDER BY ran.pkt_2day DESC";
    in
    ." ORDER BY ran.rang_2day ASC";
    geändert.