Probleme mit verschachtelten IF-Anweisungen

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

  • Probleme mit verschachtelten IF-Anweisungen

    Hallo Leute, habe da ein kleines Problem und steh da wie ein Ochs vorm Berg.
    Ich möchte ein Formular erstellen, in dem Ich Nutzer u.ä neu anlegen, editieren oder löschen kann.
    Der Code für die Auswahl der Aktion funktioniert, die Var werden auch übergeben und er zeigt mir das erste Bearbeitungsfenster "Nutzer neu anlegen" auch an, aber dann hat sich das auch schon mit der kooperation.
    Wäre sehr nett, wenn sich jemand mal den Code ansehen könnte, arbeite noch nicht solange mit php und finde den fehler einfach nicht.
    Hier der Code:


    PHP-Code:
    <html>
    <body>
    <center><h2>
    Daten ändern/löschen  --- Daten neu anlegen </h2>
    <br>
    <form action = "datenbearb.php" method="POST">
    <u>Datengruppe aussuchen:</u><br><p>
    <table border="0"><tr><font size="3">
    <td><input type="radio" name="dsgr" value="Nutzer" checked>Nutzer</td>
    <td><input type="radio" name="dsgr" value="APC" checked>APC</td>
    <td><input type="radio" name="dsgr" value="Monitor" checked>Monitor</td>
    <td><input type="radio" name="dsgr" value="Drucker" checked>Drucker</td>
    <td><input type="radio" name="dsgr" value="Notebook" checked>Notebook</td>
    </font></tr></table><br>
    <u>Aktion wählen:</u><br><p>
    <table border="0"><tr><font size="3">
    <td><input type="radio" name="action" value="neu anlegen" checked>neu anlegen</td>
    <td><input type="radio" name="action" value="bearbeiten" checked>bearbeiten</td>
    <td><input type="radio" name="action" value="löschen" checked>löschen</td>
    </font></tr></table><br>
    <input type="submit">
    <input type="reset">
    </form></center><br><br><hr/>
    <center>


    <?php
        
    echo "Sie möchten also ein(en) " $_POST["dsgr"] . " " $_POST["action"] . "<br><br>";
        if (
    $_POST["dsgr"] == "Nutzer" && $_POST["action"] == "neu anlegen")
        {
             echo 
    "<form action='datenbearb.php' method='POST'";
            echo 
    "<br><font color='red'>";
            echo 
    "Der Datensatz muß vollständig ausgefüllt werden!!!<br><br></font>";
            echo 
    "<table border=0>";        
            echo 
    "<tr><td><b>Name:</b></td><td><input name='nm'><br></td>
                    <td><b>Vorname:</b></td><td><input name='vn'><br></td></tr>"
    ;
            echo 
    "<tr><td><b>PKZ-Nr.:</b></td><td><input name='id'><br></td>
                    <td><b>Telefon:</b></td><td><input name='tel'><br></td></tr>"
    ;        
            echo 
    "<tr><td><b>Sachbereich:</b></td><td><input name='sb'><br></td>
                    <td><b>Funktion:</b></td><td><input name='fb'><br></td></tr>"
    ;
            echo 
    "<tr><td><b>Gebäude:</b></td><td><input name='geb'><br></td>
                    <td><b>Zimmer:</b></td><td><input name='zi'><br></td></tr>"
    ;
            echo 
    "<tr><td><b>Dienststelle:</b></td><td><input name='ds' value='BPOLABT BZA'><br></td>
                    <td><b>Ort:</b></td><td><input name='ort' value='Bad Bergzabern'><br></td></tr>"
    ;
            echo 
    "</table><br>";
            echo 
    "<input name='gesendet' value='Datensatz senden' type='submit'> <input type='reset'> </form>";
            if (isset(
    $_POST["gesendet"]))
                {
                
    $prf $_POST["nm"];
                if (
    $prf!="")
                    {
                
    mysql_connect();
                
    mysql_select_db("it-verwaltung");
                
    $sql "INSERT INTO personaldaten";
                
    $sql .= "(ID, Name, Vorname, Dienststelle, 
    Sachbereich, Funktionsbereich, Ort, Gebaeude, Zimmer, Telefon) VALUES "
    ;
                
    $sql .= "('" $_POST["nm"] . "', '";
                
    $sql .= $_POST["id"] . "', '";
                
    $sql .= $_POST["vn"] . "', '";
                
    $sql .= $_POST["ds"] . "', '";
                
    $sql .= $_POST["sb"] . "', '"
                
    $sql .= $_POST["fb"] . "', '";
                
    $sql .= $_POST["ort"] . "', '";
                
    $sql .= $_POST["geb"] . "', '";
                
    $sql .= $_POST["zi"] . "', '";
                
    $sql .= $_POST["tel"] . "') ";
                
    mysql_query($sql);
                
    $num mysql_affected_rows();
                if (
    $num>0)
                echo 
    "Es wurde 1 Datensatz hinzugefügt<p>";
                else
                echo 
    "Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt<p>";
                    }
                else
                echo 
    "Geben SIe einen kompletten Datensatz ein!!"
                }
        }
        else
            echo 
    "alle anderen Script-Bausteine sind noch nicht geschrieben";
            echo 
    mysql_errno() . ": " mysql_error(). "\n";
            
            
            
            

         
    ?>
    </body>
    </html>
    Zuletzt geändert von Alex.Th; 06.02.2007, 15:41.

  • #2
    Re: Probleme mit verschachtelten IF-Anweisungen

    Original geschrieben von Alex.Th
    aber dann hat sich das auch schon mit der kooperation.
    Ja, genauso wie mit deiner.

    Erst mal bitte Regeln lesen, Code ohne Überbreite posten (Beitrag editieren).

    Und dann vielleicht mal eine nachvollziehbare Problembeschreibung liefern - obiges ist nämlich keine.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Probleme mit verschachtelten IF-Anweisungen

      Original geschrieben von Alex.Th

      PHP-Code:
      if ($num>0)
      echo 
      "Es wurde 1 Datensatz hinzugefügt<p>";
      else
      echo 
      "Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt<p>";

      Erst mal ein Willkommen hier im Forum

      zu deinem problem. Tu mir mal den gefallen und rück deinen code ordentlicher ein. dann du machst da zweimal ein p-Tag auf, wieso? Nur so nebenbei. dann hast du bei dem einem if keine Klammer oder hab ich was übersehen. und dann beschreib doch bitte mal genauer was NICHT funktioniert.

      Liebe Grüße
      jochen

      Kommentar


      • #4
        hier noch n schickes Tutorial zum Thema einrücken
        http://tut.php-q.net/einruecken.html
        1123581321

        Kommentar


        • #5
          Hehe wir haben alle mal Angefangen.

          Hier mal ein parr Tips du dir selbst einen gefallen und schreib den Hmtl code nicht mit der echo anweisung das wird zu unbersichtlich

          echo "<form action='datenbearb.php' method='POST'";
          echo "<br><font color='red'>";
          echo "Der Datensatz muß vollständig ausgefüllt werden!!!<br><br></font>";
          echo "<table border=0>";
          echo "<tr><td><b>Name:</b></td><td><input name='nm'><br></td>
          <td><b>Vorname:</b></td><td><input name='vn'><br></td></tr>";
          echo "<tr><td><b>PKZ-Nr.:</b></td><td><input name='id'><br></td>
          <td><b>Telefon:</b></td><td><input name='tel'><br></td></tr>";
          echo "<tr><td><b>Sachbereich:</b></td><td><input name='sb'><br></td>
          <td><b>Funktion:</b></td><td><input name='fb'><br></td></tr>";
          echo "<tr><td><b>Gebäude:</b></td><td><input name='geb'><br></td>
          <td><b>Zimmer:</b></td><td><input name='zi'><br></td></tr>";
          echo "<tr><td><b>Dienststelle:</b></td><td><input name='ds' value='BPOLABT BZA'><br></td>
          <td><b>Ort:</b></td><td><input name='ort' value='Bad Bergzabern'><br></td></tr>";
          echo "</table><br>";
          echo "<input name='gesendet' value='Datensatz senden' type='submit'> <input type='reset'> </form>";

          PHP-Code:
          ?>
          <form action='datenbearb.php' method='POST'
                 <font color='red'>
                   Der Datensatz muß vollständig ausgefüllt werden!!! <br><br>
                  </font> 
          Der nächste Hammer ist deine Sql zusammen setzung zu unübersichtlich

          $sql = "INSERT INTO personaldaten";
          $sql .= "(ID, Name, Vorname, Dienststelle, Sachbereich, Funktionsbereich, Ort, Gebaeude, Zimmer, Telefon) VALUES ";
          $sql .= "('" . $_POST["nm"] . "', '";
          $sql .= $_POST["id"] . "', '";
          $sql .= $_POST["vn"] . "', '";
          $sql .= $_POST["ds"] . "', '";
          $sql .= $_POST["sb"] . "', '";
          $sql .= $_POST["fb"] . "', '";
          $sql .= $_POST["ort"] . "', '";
          $sql .= $_POST["geb"] . "', '";
          $sql .= $_POST["zi"] . "', '";
          $sql .= $_POST["tel"] . "') ";
          PHP-Code:
          $sql "INSERT INTO personaldaten 
          (ID, Name, Vorname, Dienststelle,Sachbereich, Funktionsbereich, Ort, Gebaeude, Zimmer, Telefon)
           VALUES 
          $_POST["nm"] , $_POST["id"] ,$_POST["vn"] ,$_POST["ds"] ,$_POST["sb"] ,$_POST["fb"] ,$_POST["ort"],
          $_POST["geb"] ,$_POST["zi"]$_POST["tel"] ) "
          So wird ein wenig übersichtlich und man sieht gleich das du hier die Spalten schon falsch zu geordnet hast was ID zu post nm.

          Dann noch was schreib nie eine $_post direkt in die Db
          Zuletzt geändert von splasch; 06.02.2007, 12:21.

          Kommentar


          • #6
            OffTopic:
            <font color='red'>
            WTF... Lang nicht gesehen

            Kommentar


            • #7
              Hallo, erstmal danke für die Antworten. Die Überbreite des Scripts tut mir leid, auf meinem Monitor (17") hat er keine Überbreite, Ich hab jetzt hoffentlich in der richtigen Zeile den Umbruch gemacht.
              Zu dem Problem:
              Das ganze soll eine zentrale Material- und Nutzerverwaltung werden, und soll nach meinem Chef kein Geldkosten und schnell fertig sein.
              Also, über die Radiobuttons soll eine Auswahl getroffen werden, z. B. Nutzer neu anlegen - funktioniert, er gibt die Werte auch weiter.
              Darunter wird nochmal aufgeführt welche Aktion gewählt wurde - funktioniert.
              In der ersten If-Anweisung soll er die Werte prüfen und mir das entsprechende Eingabe-Formular aufrufen - auch das klappt.
              Beim Absenden des Formulars tritt dann der Fehler auf, er wirft mir statt dem Ergebnis Nutzer neu angelegt oder kein neuer Datensatz angelegt, die letze else-Anweisung "alle anderen Script-bausteine..." aus.

              Kommentar

              Lädt...
              X