Rabatt-Berechnung in If-Anweisung implementieren

Das ist wenn man so will nur eine kurz schreibweise einer if Anweisung.

Also wie timestamp bereits sagte
Programmierer sind doch schreibfaul

Wenn das auf dich nicht zutreffen sollte dann lass dich nicht davon abhalten es anders zu lösen.
 
so ich hab das jetzt mal so geschrieben wie ich denke das funktioniert, allerdings komm ich net wirklich weiter also hier erst einmal der unvollständige Code

PHP:
$super  =   "1.15";
$normal =   "1.05";



// Anweisung und Berechnung
if ( $_POST["sorte"] == "S")
    {
    $ergebniss = $_POST["liter"] * $super;
        if ( $_POST["liter"] > 100)
            {
                $ergebniss2 =  $_POST["liter"] * $super * 0.98;
                echo $_POST["liter"] . " Liter Super kosten " . $ergebniss2 . " Euro";
            }
    }

----------------------------------------------------------
DARUNTER HAB ICH KEINE EINFÄLLE
    
else
    {
        $ergebniss1 =   $_POST["liter"] * $normal;
        
        echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";
    }

also das Funktioniert jetzt soweit, allerdings nur bei der Sorte S und über 100 und unter 100 Liter,
die Sorte N funktioniert noch net so richtig?! Ist das vom Code her soweit richtig?!

des Funktioniert doch nicht weil der nur die Ausgabe macht wenn er über 100 Liter hat.
 
Zuletzt bearbeitet:
Hi

analysieren wir deinen Code doch mal Stück für Stück:
PHP:
$super  =   "1.15";
$normal =   "1.05";

Am Anfang die Preise in einer Variablen festzulegen ist durchaus sehr sinnvoll. Wenn du das Thema Konstanten schon hattest könntest du für die Preise auch Konstanten nehmen, an sonsten sehr gut!


PHP:
// Anweisung und Berechnung
if ( $_POST["sorte"] == "S")
    {
    $ergebniss = $_POST["liter"] * $super;
Soweit auch alles in Ordnung, wenn der Benutzer Super tanken möchte, wird auch der Super Preis genommen.

PHP:
        if ( $_POST["liter"] > 100)
            {
                $ergebniss2 =  $_POST["liter"] * $super * 0.98;
                echo $_POST["liter"] . " Liter Super kosten " . $ergebniss2 . " Euro";
            }
Wenn er mehr als 100 Liter tankt wird der Rabatt berechnet, auch dass ist richtig. Du hast jetzt hier eine Ausgabe getätigt, die allerdings nur ausgeführt wird, wenn der User mehr als 100 Liter tankt. Die Antwort auf deine Frage, warum du sonst keine Ausgabe erhälst sollte dir jetzt ein wenig näher gekommen sein ;)

PHP:
else
    {
        $ergebniss1 =   $_POST["liter"] * $normal;
        
        echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";
    }

Vom Prinzip her ist das doch das gleiche in grün. Du musst jetzt nur noch den Rabattcode von oben hier mit runter kopieren und dann funktioniert es.
 
PHP:
Ist das vom Code her soweit richtig?!
Es ist syntaktisch zumindest mal nicht falsch.

Bisher gibt es aber nur folgende Fälle:
Sorte S und mehr als 100 Liter.
Sorte N egal wieviele Liter.

Es macht zwar afaik keinen Unterschied aber ich würde $super und $normal nicht als string übergeben.
PHP:
//$super  =   "1.15";
$super = 1.15;
//$normal =   "1.05";
$normal = 1.05;
 
gut ich probier das mal weiter, danke für die Tipps und Hilfen!

Ziemlich kompliziert der Spaß eh, überall steht das es einfach ist aber nunja ich werde schauen ob es klappt!
 
wohl wahr das stimmt allerdings.

so nun gehts weiter mit den Schreiben, war de ganze Zeit unterwegs da konnt ich ne weiter arbeiten bzw. probieren!

sooo nun hab ich es hinbekommen also im Skript funktioniert es auf jedenfall erst einmal, ich schreib hier mal den Code hin vllt. habt ihr ja noch paar Verbesserungen oder so!


PHP:
$super  =   1.15;
$normal =   1.05;



// Anweisung und Berechnung
if ( $_POST["sorte"] == "S")
    {
        if ( $_POST["liter"] > 100)
            {
                $ergebniss2 =  $_POST["liter"] * $super * 0.98;
                echo $_POST["liter"] . " Liter Super kosten " . $ergebniss2 . " Euro";
            }
        else
            {
                    $ergebniss = $_POST["liter"] * $super;
                    echo $_POST["liter"] . " Liter Super kosten " . $ergebniss . " Euro";
                
            }
    }
    
else
    {
            if ( $_POST["liter"] > 100)
                {
                    $ergebniss1 =   $_POST["liter"] * $normal *0.98;
                    echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";

                }
            
            else
                {
                  $ergebniss1 =   $_POST["liter"] * $normal;
                  echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";
                }
    }



danke dir timestamp ;)
 
Hi

du kannst den Variablen ruhig den selben Namen geben, da sie sich hier nicht überschreiben können. Außerdem kannst du die Ausgabe hinter die Bedingungen schreiben, da sie eigentlich die gleichen Variablen enthält (dann werden es auch gleich ein paar weniger Zeilen :D )
PHP:
$super  =   1.15;
$normal =   1.05;

// Anweisung und Berechnung
if ( $_POST["sorte"] == "S"){
  if ( $_POST["liter"] > 100){
    $ergebnis =  $_POST["liter"] * $super * 0.98;
  }
  else{
    $ergebnis = $_POST["liter"] * $super;
  }
  echo $_POST["liter"] . " Liter Super kosten " . $ergebnis . " Euro";            
}
else{
  if ( $_POST["liter"] > 100){
    $ergebnis =   $_POST["liter"] * $normal *0.98;
  }
  else{
    $ergebnis =   $_POST["liter"] * $normal;    
  }
  echo $_POST["liter"] . " Liter Normal kosten " . $ergebnis . " Euro";
}

Ich hoffe so ist das für dich noch verständlich geblieben =)
 
Zuletzt bearbeitet:
jo klar bleibt trotzdem noch Verständlich für mich, hab des gerade mal alles gekürzt!
Das mit den Variablen z.B innerhalb von IF das diese sich nicht Überschreiben davon steht hier im Buch z.B garnix!


;) ;)

Tausend dank nochmal hehe!

Noch ne frage jetzt hab ich den ganzen Spaß ja mit eurer Hilfe hinbekommen hättest vllt. mal ne Idee was ich über so ein Eingabeformular und solchen IF-Abfragen nochmal von alleine Probieren kann?! Also könntest mir mal was vorgeben und ich versuch des zu schreiben!?
 
Die Standardsachen wären ja zu prüfen ob ein eingebenes Datum gültig ist, ob ein Jahr ein Schaltjahr ist, eine Zahl eine Primzahl... Das würde mir jetzt spontan einfallen.
 
Zurück