Rabatt-Berechnung in If-Anweisung implementieren

apa-most

Mitglied
Hey und zwar bin ich gerade an einem Buch lesen... zwecks Php un hab da ne Aufgaben Stellung bekommm weiß aber net mehr so richtig weiter...
erstmal den Code dazu den ich geschrieben habe


HTML-Datei-Eingabeformular das kein Problem....
Code:
<html>
<head>
    <title></title>
</head>
<body>
    <p>Bitte geben Sie Menge und Sorte ein:
    <br></br>
    
    <form action="ub17.php" method="post">
        <input name="liter"> Menge in Liter <br>
        <input name="sorte"> Sorte (S oder N) <br>
        <br>
        <input type="submit">
        <input type="reset">
    </form>
    
</body>
</html>


PHP-Auswertungsprogramm
Code:
<?php
$super  =   "1.15";
$normal =   "1.05";
// Anweisung und Berechnung
if ($sorte == "S")
    {
    $ergebniss = $_POST["liter"] * $super;
//Ausgabe
    echo $_POST["liter"] . " Liter Super kosten " . $ergebniss . " Euro";
    }
    
    else
    {
        $ergebniss1 =   $_POST["liter"] * $normal;
        
        echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";
    }
?>

Das soll eine normale Berechnung darstellen mit IF Anweisung ob nun Super und Normal getankt.. wird.. wie man erkennen kann.... so nun die Aufgabe dazu... wo ich net weiterkomm.... ich soll zu diesem Skript... schreiben wenn mehr als 100Liter getankt werden dann soll auf das Endergebnis 2% Rabatt gegeben werden ohne eine globale Variable....und da komm ich ne weiter... mir ist klar das es dann mit....

Code:
if ($_POST["liter"] > 100;
....... dann berechne.... liter * preis(sorte)
aber wie bekomm i in das Endergebniss die 2% Rabatt mit drauf das Versteh ich ne.. bzw. komm da nicht weiter würde mich über Hilfe freuen... das sicherlich nicht allzu schwer
 
Hi

Um 2% abzurechnen gibt es doch jede Menge Möglichkeiten. Such dir eine aus ;)
PHP:
$preis = 100;

$rabatt = $preis * 0.98;
$rabatt = $preis - ( ($preis/100) *2):
$rabatt = $preis - ($preis * 0.02);

Außerdem sollte deine erste IF-Abfrage glaube ich so aussehen:
PHP:
if( $_POST["sorte"] == "S")
 
super Sache...hmm

wie bekomm ich das aber noch hin weil da steht unabhängig von S oder N soll der Rabatt erst ab 100 Liter gegeben werden? allerdings müsste ich ja da 2 if abfragen shcreiben?! Aber des soll ich glaube net machen geht das auch noch anders?
 
Zuletzt bearbeitet:
Ohne eine zusätzliche IF Abfrage wirst du das nicht lösen können immerhin ist es ja vom Wert "Liter" abhängig.

Damit es innerhalb der Formal direkt berechnet wird, könntest du aber die Kurzschreibweise verwenden:

PHP:
if ($sorte == "S") {
    $ergebniss = $_POST["liter"] * $super * $rabatt = ($_POST["liter"] > 100) ? 0.98 : 100;
     echo $_POST["liter"] . " Liter Super kosten " . $ergebniss . " Euro";
} else {
    $ergebniss1 =   $_POST["liter"] * $normal * $rabatt = ($_POST["liter"] > 100) ? 0.98 : 100;
    echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss1 . " Euro";
}
 
Warum denn zweimal aufschreiben? Programmierer sind doch schreibfaul :p
PHP:
$rabatt = ($_POST["liter"] > 100) ? 0.98 : 100;
if ($sorte == "S") {
    $ergebniss = $_POST["liter"] * $super * $rabatt;
     echo $_POST["liter"] . " Liter Super kosten " . $ergebniss . " Euro";
} else {
    $ergebniss =   $_POST["liter"] * $normal * $rabatt;
    echo $_POST["liter"] . " Liter Normal kosten " . $ergebniss . " Euro";
}
 
@apa-most: Sag mal, klemmt die Punkt-Taste auf deiner Tastatur?

Nichts gegen drei Punkte am Satzende, wenn man damit ein offenes Ende für eine Aussage / einen Gedankengang zum Ausdruck bringen möchte, aber deine inflationäre Zeichensetzung in jedem deiner Forenbeiträge mitten und am Ende eines Satzes ist einfach nur grausam anzusehen.

mfg Maik
 
oh sorry das beachte ich garnicht so, sorry werd das in Zukunft unterlassen!

;)

danke für die Tipps werd des mal weiter ausprobieren!
 
@ Timestamp

Code:
$rabatt = ($_POST["liter"] > 100) ? 0.98 : 100;
Ist so eine funktion möglich oder geht sowas nur in einer If Abfrage?

weil hab des bisher noch net gesehen im Buch? Oder hat des einen Zusammenhang mit der IF Abfrage?


Bei dieser Schreibweise bekomm ich einen Parse-Error?
 
Zuletzt bearbeitet:
sorry hab den Parse Error beseitigt war mein Fehler, ich hab statt den doppelpunkt, ein Slash genommen als geteilt durch jetzt ersetzt durch den doppelpunkt dann geht es!


Hmm na rein theorethisch also laut den Buch muss das auch Ohne einen Operator gehen weil dieses Kapitel erst als nächstes kommt, hmm komisch naja abwarten so ich Probier das jetzt nochmal aus!

Trotzdem danke!
 
Zurück