Noch zu vergebene Punkte

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!

  • 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.

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

  • 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.

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

  • Hallo,
    mal wieder ein großes Dankeschön. Funktioniert soweit super.


    Nur ein Punkt habe ich noch bei den Bonuspunkten stimmt etwas nicht.


    Er zeigt mir an, dass ich noch offene 10 offene Bonuttipps habe (das passt auch so), aber er zeigt mir an, dass ich damit maximal 15 Punkte holen kann (richtig wäre bei mir jetzt allerdings 39 Punkte maximal).


    Wenn du dir das vielleicht noch anschauen könntest, wäre das super.


    Compoundbow83

  • ...bei mir sagt er:


    Bei den restlichen 27 Spielen kannst du noch maximal 170 Punkte erreichen.
    Du hast noch 0 offene Bonustipps, wo du maximal 0 Punkte erreichen kannst.


    Wo ist der Fehler - leider reichen meine PHP-Kenntnisse nicht aus, ihn selber zu finden!

    Danke und Gruß,

    Tim

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

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

  • ...sagenhafter support - vielen Dank. Leider ändert das bei mir nichts, dass nachwievor die 0 Punkte angezeigt werden...


    Wenn ich die o.g. Abfrage


    SQL
    1. SELECT (SELECT pkt FROM emtipp_bonus_punkte tb2 WHERE tb2.bid = tb1.bid AND tb1.date < tb2.date ORDER BY tb2.date ASC LIMIT 1) AS pkt FROM emtipp_bonus_tipps tb1 LEFT JOIN emtipp_bonus_answers tb3 ON tb3.bid = tb1.bid WHERE tb1.usr = 1 AND tb3.answer IS NULL GROUP BY tb1.bid

    direkt in der Datenbank ausführe kommt auch als Ergebnis 0:

    SQL
    1. MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze). ( Die Abfrage dauerte 0.0022 Sekunden )


    Weitere Ideen?

  • Tippst du überhaupt mit Bonustipps? Gibt es Antworten auf die Bonustipps in der Tabelle? Gibt es Punkte für die Bonustipps?

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

  • Dann liegt es daran, das in der bonus_answers-Tabelle schon Datensätze drin stehen, was nicht sein sollte.

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

  • Habs hinbekommen, mit



    Code
    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 = '0' GROUP BY tb1.bid");
    2. $restBonus = mysql_num_rows($sqlBonus);
    3. $restBonusPoints = 0;
    4. while($rowBonus = mysql_fetch_array($sqlBonus)) {
    5. $restBonusPoints += $rowBonus['pkt'];
    6. }


    klappts!!!


    Habe
    tb3.answer IS NULL
    durch
    tb3.answer = '0'
    ersetzt!

  • Dann liegt es daran, das in der bonus_answers-Tabelle schon Datensätze drin stehen, was nicht sein sollte.

    Seit gestern Abend ist es aber legitim, dass dort schon Datensätze drin stehen, denn der Gruppensieger der Gruppe A steht ja fest.


    Berücksichtigt die Abfrage die bereits gegebenen Punkte und rechnet diese nicht mehr mit ein?

  • 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.

    Zufrieden mit dem Script und dem Support? Möchtest du uns unterstützen?

    Dann könntest du etwas SPENDEN. :)


    HERTHA BSC heißt unser Verein
    HERTHA BSC wird es immer sein!

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

    Hallo,
    vielen Dank genau das war es. Jetzt stimmt es bei mir.

  • wo genau fügt Ihr denn:

    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.';

    ein ?


    Weil bei mir klappt das nicht dass es angezeigt wird