verschachtelte if-Anweisung

Bawla

Mitglied
Als PHP-Anfänger bin ich grad dabei verschachtelte if-Anweisungen zu üben:
folgender Code funktioniert nicht - ich probier schon ewig aber finde keinen Fehler. Wäre super wenn mal jemand drüber schauen könnte. Besten Dank.

Egal wieviel kg Äpfel eingegeben wurden, es greift immer auf die erste if-Anweisung zu.

HTML:
<html>
<head>
<title>Eingabe für verschaltete if-Anweisung</title>
</head>
<body>
Wieviel Kilogramm Äpfel wollen Sie bestellen<br>
Der Versandpreis berechnet sich je nach Kilogramm:<br>

<p>Bitte geben Sie Ihre Bestellmenge ein:</P>
<form action="verschachtelt.php" method="POST">
<p>Bestellmenge: <input name="gewicht"></p>
<input type="submit" value="Senden">
<input type="reset" value="Zurücksetzen">
</form>
</body>
</html>

PHP:
<html>
<head>
<title>Verschachtelte if-Anweisung</title>
</head>
<body>
<?php
$menge = $gewicht;
if ($menge < 5)
{
  echo "Sie haben weniger als 5 Kilo Äpfel gekauft, deswegen kostet der Versand pauschal 7 Euro!.";
}
else 
{
  if ($menge <= 7.5)
  {
    echo "Sie haben zwischen 5 und 7,5 Kilo Äpfel bestellt der Versand ist deshalb kostenlos!";
  }
  else 
  {
  echo "Sie mehr als 7,5 Kilo Äpfel bestellt, deshalb werden pauschal 7 Euro Versand fällig.";
  }
}
?>
</body>
</html>
 
PHP:
<html> 
<head> 
<title>Verschachtelte if-Anweisung</title> 
</head> 
<body> 
<?php 
$menge = $_POST[gewicht]; 
if ($menge < 5) 
{ 
  echo "Sie haben weniger als 5 Kilo Äpfel gekauft, deswegen kostet der Versand pauschal 7 Euro!."; 
} 
else  
{ 
  if ($menge <= 7.5) 
  { 
    echo "Sie haben zwischen 5 und 7,5 Kilo Äpfel bestellt der Versand ist deshalb kostenlos!"; 
  } 
  else  
  { 
  echo "Sie mehr als 7,5 Kilo Äpfel bestellt, deshalb werden pauschal 7 Euro Versand fällig."; 
  } 
} 
?> 
</body> 
</html>

Besser und ein wenig sicherer ist das hier:
PHP:
<html> 
<head> 
<title>Verschachtelte if-Anweisung</title> 
</head> 
<body> 
<?php 
$menge = mysql_real_escape_string($_POST[gewicht]); 
if ($menge < 5) 
{ 
  echo "Sie haben weniger als 5 Kilo Äpfel gekauft, deswegen kostet der Versand pauschal 7 Euro!."; 
} 
else  
{ 
  if ($menge <= 7.5) 
  { 
    echo "Sie haben zwischen 5 und 7,5 Kilo Äpfel bestellt der Versand ist deshalb kostenlos!"; 
  } 
  else  
  { 
  echo "Sie mehr als 7,5 Kilo Äpfel bestellt, deshalb werden pauschal 7 Euro Versand fällig."; 
  } 
} 
?> 
</body> 
</html>
 
Ich würd es vielleicht eher so schreiben.

PHP:
if ($menge < 5 || $menge > 7.5) 
{ 
  echo "Sie haben weniger als 5 Kilo oder mehr als 7,5 Kilo Äpfel gekauft, deswegen kostet der Versand pauschal 7 Euro!."; 
}

if ($menge >= 5 && $menge <= 7.5) 
  { 
    echo "Sie haben zwischen 5 und 7,5 Kilo Äpfel bestellt der Versand ist deshalb kostenlos!"; 
  }
 
Zurück