Errechnung von Punkten auf Fussballtipps

Xiaodeguo

Mitglied
Hallo,

mit meinem heutigen Beitrag erhoffe ich mir Denkanstösse oder vieleicht sogar einen
guten Code um folgendes zu erreichen:

Ich bastele an einem Fussballtipp"Spiel" für meinen Bekanntenkreis,
nun im wesentlichen geht nun alles. Aber ich muss halt bei jedem Spieler für jedes Spiel
die Punkte manuel vergeben, das ist bei 20 Spielern schon recht zeitaufwendig. Daher würde ich das gerne so haben, das wenn ich das Ergenis des Spiels eintrage, alle Tipps auf dieses Spiel automatisch bewertet werden und somit die Punkte vergeben werden.

Mein Problem ist aktuell das ich beim vergleichen des Tipps und des Ergenissen nicht die richtigen Ergebnisse bekomme.

Bei uns gibt es 4 Arten von Punkte:

(Spielergebnis: 3:1)
1. 3 Punkte, wenn Tipp 3:1
2. 2 Punkte, bei richtiger Tenedenz 2:0
3. 1 Punkt, bei richtigem Sieger 1:0
4. 0 Punkte, wenn alles falsch 2:3

Wenn ich nun an das Problem mit If Abfragen ran gehe, bekomme ich oft 2 Aussagen, dafür habe ich mit folgendem CODE gespielt:

PHP:
<?php
if ($_POST['HT'] != "" AND $_POST['TippHT'] != ""){ // Pruefen ob gepostet wurde

$HT = $_POST['HT'];
$GT = $_POST['GT'];

$TippHT = $_POST['TippHT'];
$TippGT = $_POST['TippGT'];                         // Entgegennahme der POST



$ergebnis1 = $HT / $TippHT;
$ergebnis2 = $GT / $TippGT;                         // Erechnung fuer Unentschieden

$ergebnis3 = $HT - $TippHT;
$ergebnis4 = $GT - $TippGT;                         // Erechnung fuer Tendenz

if ($HT == $TippHT AND $GT == $TippGT){
    
    echo "Dein Tipp bringt dir 3 Punkte";
}

        if ($HT > $GT AND $TippHT > $TippGT){
            
            echo "Dein Tipp bringt dir 1 Punkt";
        }

                if ($ergebnis1 == $ergebnis2){
                    
                    echo "Dein Tipp bringt dir 2 Punkte, wegen Unentschieden";
                }

                        if ($ergebnis3 == $ergebnis4){
                            
                            echo "Dein Tipp bringt dir 2 Punkte, wegen der richtigen Tendenz";
                        }
}
?>
<form action="" method="POST">

<table>

<tr>
<td>Spielergebnis:</td>
<td><input type="text" name="HT" size="1"/>:<input type="text" name="GT" size="1"/></td>
</tr>

        <tr>
        <td>Dein Tipp:</td>
        <td><input type="text" name="TippHT" size="1"/>:<input type="text" name="TippGT" size="1"/></td>
        </tr>

                <tr>
                <td colspan="2"><input type="submit" value="add" name="add"/></td>
                </tr>
</table>

</form>

Also wie beschrieben, hat jemand einen Tipp wie ich das angehen kann, oder vieleicht selbst das Problem gehabt und hat ne Lösung für mich oder aber einen Lösungsweg?

Vielen Dank jetzt schonmal für jede nützliche Antwort
 
Logisch ist, dass, wer 3 Punkte bekommt, auch die Tendenz richtig haben musste, nicht wahr? Und sogar den Sieger hatte er richtig getippt..

Laß die ifs nach Punkten absteigend durchgehen und benutze eine Variable als Ausstiegs-Switch.
PHP:
$ende = false;

if ($HT == $TippHT && $GT == $TippGT && !$ende){
   $ende=true;
   echo "Dein Tipp bringt dir 3 Punkte";
}

if ($ergebnis3 == $ergebnis4 && !$ende){
   $ende=true;                      
   echo "Dein Tipp bringt dir 2 Punkte, wegen der richtigen Tendenz";
}

if ($ergebnis1 == $ergebnis2 && !$ende){
   $ende=true;              
   echo "Dein Tipp bringt dir 2 Punkte, wegen Unentschieden";
}

if ($HT > $GT && $TippHT > $TippGT && !$ende){
   $ende=true;         
   echo "Dein Tipp bringt dir 1 Punkt";
}
(das ist jetzt ungetestet, klingt aber logisch :))
mfg chmee
 
Zuletzt bearbeitet:
Herzlichen Dank euch beiden.
Konnte mein Problem nun wie folgt lösen.

PHP:
$HT = $data->t_HT;
$GT = $data->t_GT;
$TippHT = $data->tore_HT;
$TippGT = $data->tore_GT;
 
$ergebnis1 = $HT - $TippHT;
$ergebnis2 = $GT - $TippGT;                         // Errechnung fuer Tendenz



$ende = false;
/**
 * KEIN ERGEBNISS VORHANDEN // SPIEL NICHT BEENDET
 */
if ($HT == "" && !$ende){
   $ende=true;
   $punkte = 0;                 
}
    /**
     * ERGEBNIS UND TIPP STIMMEN UEBEREIN
     */
    elseif ($HT == $TippHT && $GT == $TippGT && !$ende){
       $ende=true;
       $punkte = 3;
       }
           /**
            * RICHTIGE TENDENZ
            */
           elseif ($ergebnis1 == $ergebnis2 && !$ende){
           $ende=true;
           $punkte = 2;                      
           }
               /**
                * RICHTIGEN SIEGER HEIMTEAM
                */
               elseif ($HT > $GT && $TippHT > $TippGT && !$ende){
               $ende=true;
               $punkte = 1;         
               }
                   /**
                    * RICHTIGEN SIEGER GASTTEAM
                    */
                   elseif ($HT < $GT && $TippHT < $TippGT && !$ende){
                   $ende=true;
                   $punkte = 1;         
                   }
                       ELSE{
                        $punkte = 0;
                       }
 
Zurück