Hallo zusammen,
in meinem Tippspiel werden die noch offenen Bonustipps falsch angezeigt.
Ich habe herausgefunden, dass das offensichtlich mit dem Tipp zum Torschützenkönig zusammenhängt, also dem einzigen Tipp der Kategorie "Spieler".
Solange ich nur Bonustipps "Team" drinhabe, funktioniert die Anzeige. Mit der Bonusfrage nach dem Torschützenkönig wird immer nur 1 offene Bonusfrage angezeigt, auch wenn noch mehr offen sind...
Weiß jemand Rat?
Zusatz: Wenn ich den Torschützenkönig getippt habe, werden gar keine offenen Bonustipps mehr angezeigt, obwohl noch mehrere offen sind...
Hier noch der Code der Funktion aus der functions.inc.php:
Code
- function getMissingBonustipps($user_id)
- {
- global $_SESSION, $saison, $tbl;
- if (isset($_SESSION['s_user']))
- {
- if ( ! isset($user_id))
- {
- $user_id = $_SESSION['s_user'];
- }
- $complete_tipps = "";
- // Zuerst alle IDs der Antworten auf type "Spieler" feststellen. Diese werden in der nächsten Abfrage ausgeschlossen
- $sql = "SELECT bid, subbid FROM ". $tbl['bonus_tipps']
- ." WHERE liga = '". $saison['liga'] ."'"
- ." AND saison = ". $saison['jahr2']
- ." AND usr = ". $user_id
- ." AND type = 'spieler'";
- $query = mysql_query($sql);
- while ($row = mysql_fetch_array($query))
- {
- $complete_tipps .= "(bf.id != ". $row['bid'] ." AND bf.subid != ". $row['subbid'] .") AND ";
- }
- if ($complete_tipps != "")
- {
- $complete_tipps = " (". substr($complete_tipps, 0, -5) .")";
- }
- // Anzahl fehlende oder unvollständige Antworten auslesen
- $sql = "SELECT bf.id, bf.subid, bf.type, bp.date, bt.id AS bt_id, bt.type AS bt_type FROM ". $tbl['bonus_fragen'] ." AS bf"
- ." LEFT JOIN ". $tbl['bonus_punkte'] ." AS bp ON bp.bid = bf.id"
- ." LEFT JOIN ". $tbl['bonus_tipps'] ." AS bt ON (bt.bid = bf.id AND bt.subbid = bf.subid)"
- ." WHERE bf.liga = '". $saison['liga'] ."'"
- ." AND bf.saison = ". $saison['jahr2']
- ." AND (bf.type != bt.type OR bt.type IS NULL)"
- . ($complete_tipps != "" ? " AND ". $complete_tipps : "")
- ." GROUP BY bf.id, bf.subid"
- ." HAVING bp.date > ". time();
- $query = mysql_query($sql);
- $count_missing_tipps = mysql_num_rows($query);
- if ($count_missing_tipps > 0)
- {
- return $count_missing_tipps;
- }
- else
- {
- return FALSE;
- }
- }
- else
- {
- return FALSE;
- }
- }
Beste Grüße
Paulchen