Ankündigung

Einklappen
Keine Ankündigung bisher.

Verschiedene If Abfragen in einer If Abfrage

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verschiedene If Abfragen in einer If Abfrage

    Hallo Leute,

    ich lerne seit wenigen Tagen PHP und schreibe momentan kleinere Skripts wie zum beispiel ein kleiner Rechner.
    Ich überprüfe die Eingabe vom Formular mit 4 verschiedenen If Abfragen. (+, -, / oder *) um dann natürlich zu rechnen.
    Nun möchte ich aber, dass erst mittels einer If Abfrage (is_Numeric) geschaut wird, ob die Eingabe überhaupt numerisch ist. Und wenn nicht, soll eine kleine Fehlermeldung wie "Falsche Eingabe" kommen. Wenn ich das aber versuche, bekomme ich immer eine Fehlermeldung.

    Hier ein Teil meines Skripts.



    PHP-Code:
    $zahl1 $_GET['zahl1'];
    $zahl2 $_GET['zahl2'];
    $operate $_GET['operate'];

    // Mein Versuch: if (is_Numeric($zahl1)) {

    if ($operate == "+") {
    echo 
    "<br><br>";
    $ergebnis $zahl1 $zahl2;
    echo 
    "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 + $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    // echo "$zahl1 + $zahl2 = $ergebnis";
    }

    if (
    $operate == "-") {
    echo 
    "<br><br>";
    $ergebnis $zahl1 $zahl2;
    echo 
    "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 - $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";
    }

    if (
    $operate == "/") {
    echo 
    "<br><br>";
    $ergebnis $zahl1 $zahl2;
    echo 
    "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 / $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";    //echo "<b>$zahl1 / $zahl2 = $ergebnis</b>";
    }

    if (
    $operate == "*") {
    echo 
    "<br><br>";
    $ergebnis $zahl1 $zahl2;
    echo 
    "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 * $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";    //echo "<b>$zahl1 * $zahl2 = $ergebnis</b>";

    // Mein Versuch: } else { echo "Ungültige Eingabe. Gib eine Zahl ein!"; }



  • #2
    Zitat von TobShaees Beitrag anzeigen
    bekomme ich immer eine Fehlermeldung.]
    Die ist entscheidend um dir Tipps zu geben und einen Fehler beheben zu können, die solltest du uns daher nicht verheimlichen.
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Zitat von TobShaees Beitrag anzeigen
      Wenn ich das aber versuche, bekomme ich immer eine Fehlermeldung.
      Und in der Regel sagt dir genau diese Fehlermeldung, was du falsch gemacht hast. Das was du auskommentiert hast sieht soweit ok aus, nur das die Klammerung falsch ist. Das else würde sich auf die Prüfung mit * beziehen. Wenn du dein Code einrückst, siehst du sowas leichter.


      PHP-Code:
      if (is_Numeric($zahl1)) {

          if(
      $operate == "+") {
              echo 
      "<br><br>";
              
      $ergebnis $zahl1 $zahl2;
              echo 
      "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 + $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    // echo "$zahl1 + $zahl2 = $ergebnis";
          
      }

          if(
      $operate == "-") {
              echo 
      "<br><br>";
              
      $ergebnis $zahl1 $zahl2;
              echo 
      "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 - $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";
          
      }

          if(
      $operate == "/") {
              echo 
      "<br><br>";
              
      $ergebnis $zahl1 $zahl2;
              echo 
      "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 / $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";    //echo "<b>$zahl1 / $zahl2 = $ergebnis</b>";
          
      }

          if(
      $operate == "*") {
              echo 
      "<br><br>";
              
      $ergebnis $zahl1 $zahl2;
              echo 
      "<span style='font-family:Arial;font-size:large;font-weight:bold;'>$zahl1 * $zahl2 = </span><span style='font-family:Arial;font-size:large;font-weight:bold;text-decoration:underline;border-bottom:1px solid white;'>$ergebnis</span>";    //echo "<b>$zahl1 - $zahl2 = $ergebnis</b>";    //echo "<b>$zahl1 * $zahl2 = $ergebnis</b>";
          
      } else {
              echo 
      "Ungültige Eingabe. Gib eine Zahl ein!";
          }

      Kommentar


      • #4
        Zitat von erc Beitrag anzeigen

        nur das die Klammerung falsch ist.

        Wie müsste ich die Klammern dann setzen?

        Kommentar


        • #5
          erc hat's ja schon deutlich gemacht. Die letzte zugemachte Klammer gehört zur letzten aufgemachten Klammer. Kannst dir also anschauen wo "{" vor dem else dann hingehört.

          Außerdem: Du solltest switch() oder elseif verwenden. Du kannst unerwünschte Seiteneffekte haben, wenn du in irgendeinem der ifs $operate änderst.

          Kommentar


          • #6
            Ich habs nicht ausgebessert. Ich habs auskommentiert und formatiert, um zu verdeutlichen, dass durchs Einrücken solche Fehler sofort ersichtlich sind. Läuft...

            Zitat von TobShaees Beitrag anzeigen
            Wie müsste ich die Klammern dann setzen?
            So das es sinn macht? Jetzt bezieht sich die else Klausel auf die Multipikation. Wird nicht multipliziert, wird "ungültige Eingabe" ausgegeben. (was du wahrscheinlich mit Fehlermeldung meintest) Die Else Klausel muss hintere das äußere IF.

            Kommentar

            Lädt...
            X