tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von chmee
  • 1 Beitrag von gnetos
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
145
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    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-Code:
    <?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
     
    Mit freundlichem Gruß
    Xiaodeguo

  2. #2
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    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-Code:
    $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
    Geändert von chmee (28.01.12 um 13:53 Uhr)
    Xiaodeguo bedankt sich. 
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    Avatar von gnetos
    gnetos gnetos ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Baden-Württemberg
    Beiträge
    400
    Blog-Einträge
    1
    Wie wäre es mit else oder elseif (http://php.net/manual/de/control-structures.elseif.php) ?

    Dann würden die weiteren ifs nur abgefragt falls die Aussage nicht zu trifft.

    Denn aktuell werden alle ifs hintereinander abgefragt, wodurch deine 2 Aussagen entstehen.
    Xiaodeguo bedankt sich. 
    Bei Nachteilen nicht jammern, sondern neue Wege finden.
    The worst decision is indecision.

  4. #4
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Herzlichen Dank euch beiden.
    Konnte mein Problem nun wie folgt lösen.

    PHP-Code:
    $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;
                           } 
     
    Mit freundlichem Gruß
    Xiaodeguo

Ähnliche Themen

  1. Berechnung von Punkten
    Von fjordschritt im Forum Java
    Antworten: 15
    Letzter Beitrag: 08.12.09, 11:04
  2. Projektion von Punkten
    Von NotThatJenny im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 11.11.07, 17:58
  3. 1.Zeit errechnung 2. mysql abfrage
    Von cyber_rest im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 26.08.04, 11:46
  4. Hilfe bei Programm errechnung
    Von Trancefreak im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 24.05.04, 04:19
  5. Errechnung eines Datums aus Kalenderwoche und Tag
    Von Karl Förster im Forum PHP
    Antworten: 5
    Letzter Beitrag: 03.09.03, 10:55