Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
SELECT
part.id_partien,
part.heimteam,
part.gastteam,
CONCAT_WS(':',part.tore_heimteam, part.tore_gastteam) AS tore,
-- final wird nirgends gebraucht, also weg damit
-- CONCAT_WS('|',tip.datum, tip.zeit) AS final,
tip.username,
CASE
WHEN part.id_partien = tip.id_partien
THEN tip.punkte
ELSE NULL
END AS punkte
CASE
WHEN part.id_partien = tip.id_partien
THEN CONCAT_WS(':',tip.tipp_tore_heimteam, tip.tipp_tore_gastteam)
ELSE NULL
END AS tip
FROM
{$SAISON_Partien} AS part,
{$SAISON_Tipps} AS tip
ON part.id_partien = tip.id_partien
WHERE
part.spieltag = {$ST}
AND tip.final = '1'
ORDER BY
part.spieltag
AND tip.username
<?php
error_reporting(E_ALL); #Verbindung zur SQL Datenbank herstellen
$db_link = @mysql_connect($dbhost, $dbusername, $dbpasswort);
mysql_select_db($dbname);
//Alle Spiele mit den dazuhgehörigen Tipps für Spieltag 1 auswählen
$sql = <<<SQL
SELECT
part.id_partien,
part.heimteam,
part.gastteam,
CONCAT_WS(':',part.tore_heimteam, part.tore_gastteam) AS tore,
CONCAT_WS('|',tip.datum, tip.zeit) AS final,
tip.username,
CASE
WHEN part.id_partien = tip.id_partien
THEN tip.punkte
ELSE NULL
END AS punkte
CASE
WHEN part.id_partien = tip.id_partien
THEN CONCAT_WS(':',tip.tipp_tore_heimteam, tip.tipp_tore_gastteam)
ELSE NULL
END AS tip
FROM
{$SAISON_Partien} AS part,
{$SAISON_Tipps} AS tip
ON part.id_partien = tip.id_partien
WHERE
part.spieltag = {$ST}
AND tip.final = '1'
ORDE BY
part.spieltag
AND tip.username
SQL;
$result = mysql_query($sql);
$games = array();
//Ich verwende objekt, da es sonst ein lese-Chaos mit den Arrays gibt
while($row = mysql_fetch_object($result)){
//Pro Spiel die Spielinfos nur einmal setzen
if(!array_key_exists($row->id_partien, $games)){
$games[$row->id_partien]['heimteam'] = $row->heimteam;
$games[$row->id_partien]['gastteam'] = $row->gastteam;
$games[$row->id_partien]['tore'] = $row->tore;
$games[$row->id_partien]['tipps'] = array();
}
//User-Tipps abfüllen
$games[$row->id_partien]['tipps'][$row->username] = $row->tip;
}
//Ausgabe
echo " <div style='overflow:scroll; overflow-x:auto; overflow-y:hidden;width:1000px;'>
<table style='border: 1px solid #000;border-collapse: collapse;background-color: #fff;width: 1000px;font-size:11px;white-space:nowrap;'>\n";
//HTML-Vorlage für Spielzeile
$gamePattern = <<<HTML
<tr style='border-bottom: 2px solid #000;'>
<td>Paarungen</td>
<td style='width: 30px;'><center><img src='/img/logos/%s.png'/></center></td>
<td style='text-align:center;'> %s </td>
<td style='width: 30px;'><center><img src='/img/logos/%s.png'/></center></td>";
</tr>
HTML;
//HTML-Vorlage für die Tippzeile
$tippPattern = <<<HTML
<tr style='border-right: 1px solid #000;'>
<td>%s</td>
<td colspan='3' style='text-align:center;'>%s</td>
</tr>\n
HTML;
foreach($games as $game){
//Spielzeile ausgeben
echo sprintf($gamePattern, $game['heimteam'], $game['tore'], $game['gastteam']);
// Pro User eine Zeile ausgeben
foreach($game['tipps'] as $user => $tipp){
echo sprintf($tippPattern, $user, $tipp);
}
}
?>
</table></div>
<?php
//Zum testen habe ich den Spieltag festgelegt
$ST = 1;
error_reporting(E_ALL); #Verbindung zur SQL Datenbank herstellen
$db_link = @mysql_connect($dbhost, $dbusername, $dbpasswort);
mysql_select_db($dbname);
//Alle Spiele mit den dazuhgehörigen Tipps für Spieltag 1 auswählen
$sql = "SELECT
part.id_partien,
part.heimteam,
part.gastteam,
tip.punkte,
CONCAT_WS(':',part.tore_heimteam, part.tore_gastteam) AS tore,
CONCAT_WS('|',tip.datum, tip.zeit) AS final,
tip.username,
CONCAT_WS(':',tip.tipp_tore_heimteam, tip.tipp_tore_gastteam) AS tip
FROM
".$SAISON_Partien." AS part
LEFT JOIN ".$SAISON_Tipps." AS tip
ON part.id_partien = tip.id_partien
WHERE
part.spieltag = ".$ST."
AND
tip.final = '1'";
$result = mysql_query($sql);
$games = array();
//Ich verwende objekt, da es sonst ein lese-Chaos mit den Arrays gibt
while($row = mysql_fetch_object($result)){
//Pro Spiel die Spielinfos nur einmal setzen
if(!array_key_exists($row->id_partien, $games)){
$games[$row->id_partien]['heimteam'] = $row->heimteam;
$games[$row->id_partien]['gastteam'] = $row->gastteam;
$games[$row->id_partien]['tore'] = $row->tore;
$games[$row->id_partien]['tipps'] = array();
}
//User-Tipps abfüllen
$games[$row->id_partien]['tipps'][$row->username] = $row->tip;
}
//Ausgabe
echo " <div style='overflow:scroll; overflow-x:auto; overflow-y:hidden;width:1000px;'>
<table style='border: 1px solid #000;border-collapse: collapse;background-color: #fff;width: 1000px;font-size:11px;white-space:nowrap;'>\n";
//HTML-Vorlage für Spielzeile
$gamePattern = <<<HTML
<tr style='border-bottom: 2px solid #000;'>
<td>Paarungen</td>
<td style='width: 30px;'><center><img src='/img/logos/%s.png'/></center></td>
<td style='text-align:center;'> %s </td>
<td style='width: 30px;'><center><img src='/img/logos/%s.png'/></center></td>
</tr>
HTML;
$tippPattern = <<<HTML
<tr style='border-right: 1px solid #000;'>
<td>%s</td>
<td colspan='3' style='text-align:center;'>%s</td>
</tr>\n
HTML;
foreach($games as $game){
//Spielzeile ausgeben
echo sprintf($gamePattern, $game['heimteam'], $game['tore'], $game['gastteam']);
// Pro User eine Zeile ausgeben
foreach($game['tipps'] as $user => $tipp){
echo sprintf($tippPattern, $user, $tipp);
}
}
$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());
mysql_close($sql);
?>
</table></div>
-- http://sqlfiddle.com/#!2/b6a7e/13
-- Einfach mal alle Partien mit Spieltag 1
SELECT *
FROM part
WHERE spieltag = 1
ORDER BY id_partien;
-- Alle User mit allen Partien des Spieltages 1 gemixt
-- Gibt pro Kimmbnation user/partie eine Zeile
SELECT
users.username,
users.id_partien,
CASE
WHEN tip.username IS NULL
THEN NULL
ELSE CONCAT(tip.tipp_tore_heimteam, ':', tip.tipp_tore_gastteam)
END AS tip
FROM
(
SELECT DISTINCT
tip.username,
part.id_partien
FROM
tip,
part
WHERE
part.spieltag = 1
) AS users
LEFT JOIN tip
ON users.username =tip.username
AND users.id_partien = tip.id_partien
WHERE
tip.final = 1
ORDER BY
users.username,
users.id_partien;
<?php
//Simulation der DB:
//Resultate aus den 2 Queries
//http://sqlfiddle.com/#!2/b6a7e/13
$partien[1] = array('id_partien' => 1, 'heimteam' => 'T1', 'gastteam' => 'T2', 'tore_heimteam' => 1, 'tore_gastteam' => 0);
$partien[2] = array('id_partien' => 2, 'heimteam' => 'T3', 'gastteam' => 'T2', 'tore_heimteam' => 2, 'tore_gastteam' => 3);
//Alle User mit allen Partien
$tipps[] = array('username' => 'U1', 'id_partien' => 1, 'tip' => '2:1');
$tipps[] = array('username' => 'U1', 'id_partien' => 2, 'tip' => '3:2');
$tipps[] = array('username' => 'U2', 'id_partien' => 1, 'tip' => '0:1');
$tipps[] = array('username' => 'U2', 'id_partien' => 2, 'tip' => NULL);
//Die tipps verschachteln array(user, array(tip für Partiy1, tip für partie 2...))
$tipsPerUser = array();
foreach($tipps as $tip){
$tipsPerUser[$tip['username']][$tip['id_partien']] = $tip['tip'];
}
$partiePattern = <<<HTML
<td>
<table>
<tr>
<td><center>%s</center></td>
<td>%s:%s</td>
<td><center>%s</center></td>
</tr>
</table>
</td>
HTML;
echo "<table>\n";
echo " <tr>\n";
echo " <th>Paarungen</th>\n";
foreach($partien as $partie){
echo sprintf($partiePattern, $partie['heimteam'], $partie['tore_heimteam'], $partie['tore_gastteam'], $partie['gastteam']);
}
echo " </tr>\n";
foreach($tipsPerUser as $user => $partieTip){
echo " <tr>\n";
echo " <th>{$user}</th>\n";
foreach($partieTip as $tip){
echo " <td><center>{$tip}</center></td>\n";
}
echo " </tr>\n";
}
echo "</table>\n";
?>
>
<table>
<tr>
<th>Paarungen</th>
<td>
<table>
<tr>
<td><center>T1</center></td>
<td>1:0</td>
<td><center>T2</center></td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td><center>T3</center></td>
<td>2:3</td>
<td><center>T2</center></td>
</tr>
</table>
</td>
</tr>
<tr>
<th>U1</th>
<td><center>2:1</center></td>
<td><center>3:2</center></td>
</tr>
<tr>
<th>U2</th>
<td><center>0:1</center></td>
<td><center></center></td>
</tr>
</table>