Fußball-Ergebnisse auswerten

ehrlich bei dem siege = (siege + 1) bin ich mir auch gar nicht sicher, weil es gibt in der Zeile wieder einen Fehler...

Vllt weiß jemand was dazu...

Gruß

achsoo...hm ja das wär noch eine idee, falls das nicht geht, aber im Moment liegt es wohl an siege = (siege + 1), oder
 
Ja dann lese die Siege (bzw. Niederlagen) aus und zähle 1 hinzu (bzw. 1 ab).

Das Passwort würde ich aber wirklich jetzt ändern, da man aus der Date sowohl Url und Passwort lesen konnte.

Sry ich wusste nicht das das dein richtiges Passwort ist :-(

Jo und nochwas du musst pro datei nur einmal zur Mysql Datenbank connecten, das macht man am besten mit einer externen .inc.php Datei, dort liegen die Daten sicher. Die Datei wird dann einfach includet.

Alle Infos zu Mysql findet man verständlich erklärt hier


Ecology
 
Hallo,

ausgehend von dieser Struktur:
SQL:
-- 
-- Tabellenstruktur für Tabelle `spiele`
-- 

CREATE TABLE `spiele` (
  `spiel_id` int(11) NOT NULL auto_increment,
  `spieltag` int(11) NOT NULL default '0',
  `heim_id` int(11) NOT NULL default '0',
  `gast_id` int(11) NOT NULL default '0',
  `heim_tore` int(11) NOT NULL default '0',
  `gast_tore` int(11) NOT NULL default '0',
  PRIMARY KEY  (`spiel_id`)
);

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `vereine`
-- 

CREATE TABLE `vereine` (
  `verein_id` int(11) NOT NULL auto_increment,
  `name` varchar(64) collate latin1_general_cs NOT NULL default '',
  PRIMARY KEY  (`verein_id`)
);
…kann man mit folgender schnuckligen Abfrage eine Tabelle erstellen lassen:
SQL:
SELECT
  `v`.*,
  
  COUNT(`s`.`spiel_id`) AS `gespielt`,
  
  SUM(
    IF(
      (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heim_tore` > `s`.`gast_tore`) OR
      (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gast_tore` > `s`.`heim_tore`),
      1, 0
    )
  ) AS `siege`,
  
  SUM(
    IF(`s`.`heim_tore` = `s`.`gast_tore`, 1, 0)
  ) AS `unentschieden`,

  SUM(
    IF(
      (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heim_tore` < `s`.`gast_tore`) OR
      (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gast_tore` < `s`.`heim_tore`),
      1, 0
    )
  ) AS `niederlagen`,

  SUM(
    IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`heim_tore`, 0) +
    IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`gast_tore`, 0)
  ) AS `tore`,

  SUM(
    IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`gast_tore`, 0) +
    IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`heim_tore`, 0)
  ) AS `gegentore`,

  COALESCE(
    SUM(
      IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`heim_tore`, -`s`.`heim_tore`) +
      IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`gast_tore`, -`s`.`gast_tore`)
    ), 0
  ) AS `tordifferenz`,

  SUM(
    IF(
      (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heim_tore` > `s`.`gast_tore`) OR
      (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gast_tore` > `s`.`heim_tore`),
      3, 0
    ) +
    IF(`s`.`heim_tore` = `s`.`gast_tore`, 1, 0)
  ) AS `punkte`

FROM
  `vereine` `v`

LEFT JOIN
  `spiele` `s` ON (`v`.`verein_id` IN (`s`.`heim_id`, `s`.`gast_id`))

GROUP BY
  `verein_id`

ORDER BY
  `punkte` DESC,
  `tordifferenz` DESC,
  `tore` DESC
Das Ergebnis daraus kann man dann noch mit PHP etwas nachbearbeiten (z.B. die Platzierung entscheiden, wenn Punkte und Torverhältnis identisch sind) und in eine andere Tabelle schreiben. Mit wenigen Anpassungen lässt sich mit dieser Abfrage z.B. auch eine Heim-/Auswärtstabelle oder eine Spieltagtabelle erstellen.

Grüße,
Matthias
 
Hallo,

also das mit der Tabelle klappt einwandfrei, aber aufgrund der neuen Tabellen muss ich meine ganzen Eingabe-Scripte ändern.

Dabei möchte ich auch gleich die Vereine aus der Datenbank auslesen und nicht, wie es vorher lief, und die ganzen Listen-Felder eingeben ;)

Code:
<?php
mysql_connect("localhost", "XXX", "XXX");
mysql_select_db("mich90");
$res = mysql_query("SELECT * FROM vereine");
if(mysql_num_rows($res)>0)
{
$i = 1;
	while($dsatz = mysql_fetch_assoc($res))
	{
	$verein[$i] = $dsatz["name"];
         $i++;
	}
         echo $verein[1];
}
?>

Das is mein Script für die Abfrage aus der Tabelle, klappt einwandfrei, das echo is nur zur Überprüfung da, also nicht dran stören! ;)

Code:
<select size='1' name='heim1' onchange='Go(this)' width='250'>
<option value='1' 'selected='selected'><?php $verein[1] ?></option>
<option value='2'><?php $verein[2] ?></option>
</select>
So sehen dann meine Listenfelder aus, halt mit mehr Vereinen
Aber: Es ist bei der Ansicht leer, obwohl die Variablen bestetzt sind (oben geprüft mit echo)
Kann mir einer sagen, warum das hier nicht angezeigt wird
Danke

Gruß
 
Ohne echo kein Wunder.
Probier es mal so:
PHP:
<select size='1' name='heim1' onchange='Go(this)' width='250'>
<?
for($i = 0; $i <= count($verein);$i++)
{
  echo "<option value='".$i."'>".$verein[$i]."</option>";
}
?>
</select>
 
Ja danke, echo war gut, habs nur anders gemacht (muss dazu sagen, das war nicht mit <?php ?> der ganze Code!! also meine Lösung:

Code:
<option value='2'><?php echo "$verein[2]"; ?></option>

;)
 
Hallo
nachdem das ja einwandfrei geht, habe ich mich an eine Tabelle gewagt, die jeder User ja sozusagen selber macht. Also es ist die Tabelle, die nach dem Tippen des jeweiligen Users entstanden wäre (also wenn der User alles richtig gehabt hätte, wie die Tabelle dann wäre)!

So , aber mein Script geht nicht !

Code:
<?php
include ("checkuser.php");
?><?php
include ("grund.php");
?><?php
mysql_connect("localhost", "XX", "MX");
mysql_select_db("X");
$res = mysql_query("
      SELECT

        `v`.*,



        COUNT(`s`.`spiel_id`) AS `gespielt`,



        SUM(

          IF(

            (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heimtipp_'.$_SESSION[user_nickname].'` > `s`.`gasttipp_'.$_SESSION[user_nickname].'`) OR

            (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gasttipp_'.'.$_SESSION[user_nickname].'` > `s`.`heimtipp_'.$_SESSION[user_nickname].'`),

            1, 0

          )

        ) AS `siege`,



        SUM(

          IF(`s`.`heimtipp_'.$_SESSION[user_nickname].'` = `s`.`gasttipp_'.$_SESSION[user_nickname].'`, 1, 0)

        ) AS `unentschieden`,



        SUM(

          IF(

            (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heimtipp_'.$_SESSION[user_nickname].'` < `s`.`gasttipp_'.$_SESSION[user_nickname].'`) OR

            (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gasttipp_'.$_SESSION[user_nickname].'` < `s`.`heimtipp_'.$_SESSION[user_nickname].'`),

            1, 0

          )

        ) AS `niederlagen`,



        SUM(

          IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`heimtipp_'.$_SESSION[user_nickname].'`, 0) +

          IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`gasttipp_'.$_SESSION[user_nickname].'`, 0)

        ) AS `tore`,



        SUM(

          IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`gasttipp_'.$_SESSION[user_nickname].'`, 0) +

          IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`heimtipp_'.$_SESSION[user_nickname].'`, 0)

        ) AS `gegentore`,



        COALESCE(

          SUM(

            IF(`v`.`verein_id` = `s`.`heim_id`, `s`.`heimtipp_'.$_SESSION[user_nickname].'`, -`s`.`heimtipp_'.$_SESSION[user_nickname].'`) +

            IF(`v`.`verein_id` = `s`.`gast_id`, `s`.`gasttipp_'.$_SESSION[user_nickname].'`, -`s`.`gasttipp_'.$_SESSION[user_nickname].'`)

          ), 0

        ) AS `tordifferenz`,



        SUM(

          IF(

            (`v`.`verein_id` = `s`.`heim_id` AND `s`.`heimtipp_'.$_SESSION[user_nickname].'` > `s`.`gasttipp_'.$_SESSION[user_nickname].'`) OR

            (`v`.`verein_id` = `s`.`gast_id` AND `s`.`gasttipp_'.$_SESSION[user_nickname].'` > `s`.`heimtipp_'.$_SESSION[user_nickname].'`),

            3, 0

          ) +

          IF(`s`.`heimtipp_'.$_SESSION[user_nickname].'` = `s`.`gasttipp_'.$_SESSION[user_nickname].'`, 1, 0)

        ) AS `punkte`



      FROM

        `vereine` `v`



      LEFT JOIN

        `spiele` `s` ON (`v`.`verein_id` IN (`s`.`heim_id`, `s`.`gast_id`))



      GROUP BY

        `verein_id`



      ORDER BY

        `punkte` DESC,

        `tordifferenz` DESC,

        `tore` DESC ") or die(mysql_error());
if(@mysql_num_rows($res)>0)
{
$platzierung = 1;
echo "<table>";
echo "<tr><td>Platz</td><td>Verein</td><td>Punkte</td><td>Tordifferenz</td><td>Tore</td><td>Gegentore</td><td>Spiele</td><td>Siege</td><td>Unentschieden</td><td>Niederlagen</td></tr>";
	while($dsatz = mysql_fetch_assoc($res))
	{
             $ver_id =  $dsatz["verein_id"];
    $verein_tausch_id = mysql_query("SELECT name FROM `vereine` WHERE verein_id = '$ver_id'");
    $verein = mysql_fetch_array($verein_tausch_id);
		echo "<tr>";
                 echo "<td>";
                 echo $platzierung;
                 echo "</td><td>";
		echo $verein["name"];
                 echo "</td><td>";
                 echo $dsatz["punkte"];
                 echo "</td><td>";
                 echo $dsatz["tordifferenz"];
                 echo "</td><td>";
                 echo $dsatz["tore"];
                 echo "</td><td>";
                 $gegentore =  $dsatz["tore"] - $dsatz["tordifferenz"];
                 echo   $gegentore;
                 echo "</td><td>";
                 echo $dsatz["gespielt"];
                 echo "</td><td>";
                 echo $dsatz["siege"];
                 echo "</td><td>";
                 echo $dsatz["unentschieden"];
                 echo "</td><td>";
                 echo $dsatz["niederlagen"];
		echo "</td></tr>";
                 $platzierung++;
                 }

         echo "</table>";
}
?>
</td>
</tr>
</table>
</body>
</html>

Es müsste an den gasttipp_$_SESSION ... usw liegen , da er sagt dass es die zeile "gasttip_" nicht gibt, das heißt er erkennt das nicht, aber vllt seht ihr mehr ;)
Achso, die Session wird in checkuser.php gestartet

Gruß
 
Zuletzt bearbeitet:
Zurück