Formular zum Updaten von Einträgen

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

  • Formular zum Updaten von Einträgen

    Hi @all!

    Ich versuche gerade ein Formular zu erstellen, dass die Einträge aus einer datenbank ausließt und mir anzeigt. Bis hier kein Problem.
    Möchte ich jetzt allerdings den Inhalt in einem Feld ändern bzw. ich lösche den Inhalt, so dass eine Fehlermeldung meinerseits erscheint, da das Feld ja jetzt nicht gefült ist, wird mir trotzdem der Datenbankinhalt angezeigt und nicht mein "neu" eingegebener Text!
    Gebe ich in ein Feld, dass nicht kontrolliert wird ein Wert ein, so ist auch dieser Wert verschwunden.

    Weiß jemand Rat? Ich wäre echt dankbar!!

    Hier mal der Code:
    PHP-Code:
    <?php 
    include "../config.php"
    include 
    "../security.php"
    $PageTitle "Accounts: Add"

    if (
    $user[permission] == "1") { 
    ?> 

    <html> 
    <head> 
    </head> 

    <body <?php 

    if ($yes && $username && $firstname && $email && $password && $password_conf) { 
       print 
    "onload=\"wait(2000);\""


    ?>


            <?php 


    if($flag


    $w_style "style=\"border-color:red\""

    $nachname  trim($nachname); 

    //Check for User Errors 
                    
    $errors 0

                    if (!
    $vorname) { 
                       
    $error_list .= "<li>Vorname</li>\n"
                       
    $errors++; 
                       
    $warning[vorname] = $w_style
                    } 
                    elseif (!
    ereg("[a-zA-Z]",$vorname)){ 
                       
    $error_list .= "<li><b>Vorname</b>: falsche Zeichen</li>\n"
                       
    $errors++; 
                       
    $warning[vorname] = $w_style
                    } 
                    
    // 
                    
    if (!$nachname) { 
                       
    $error_list .= "<li>Nachname</li>\n"
                       
    $errors++; 
                       
    $warning[nachname] = $w_style
                    } 
                    elseif (!
    ereg("[a-zA-Z]",$nachname)){ 
                       
    $error_list .= "<li><b>Nachname</b>: falsche Zeichen</li>\n"
                       
    $errors++; 
                       
    $warning[nachname] = $w_style
                    } 

           if (
    $errors 0) { 
                       
    $meldung "<div id='k_a_f'><p>Folgende Probleme sind aufgetreten:</p> 
                       <ul> 
                       
    $error_list 
                       </ul>\n 
                       <p>Bitte füllen Sie die angegebenen Felder vollständig und ordnungsgemäß aus!</p></div>\n"

                     unset(
    $flag); 
                    } 

           else 
           { 
                         
    //Insert New Record 
                         
    $passwort md5($pass); 
                         
    $result "UPDATE kunden SET vorname = '$vorname', nachname = '$nachname' WHERE user_id = '$user_id'"
                         
    $row mysql_query($result); 
                         
    //End Insert 

                         
    print "<p><strong>$vorname $nachname wurde erfolgriech überarbeitet.</strong></p>\n"

                         print 
    "<p>Das Fenster schließt in 2 Sekunden.</p>\n"

                    } 
    //Ausgabe der Meldung 
    echo $meldung
    }
    //Ende $_POST[flag]==1 
      
    if(!$flag
      { 
                      
    $result mysql_query("SELECT * FROM kunden WHERE user_id = '$user_id'"); 
                      
    $row mysql_fetch_array($result); 
    ?> 

                      <form name="Eintrag" action="<?php echo $PHP_SELF?>" method="post"> 
                      <input type="hidden" name="yes" value="true"> 
                      <input type="hidden" name="user_id" value="<?php echo $user_id?>"> 
                      <input type="hidden" name="flag" value="1"> 

                      <p>Um ein Detail zuändern, dies einfach korrigieren und dann auf <strong>update</strong> klicken.</p> 
                      <table width="100%" border="0" cellpadding="7" cellspacing="1" class=""tablehead"> 
                                <tr> 
                                    <td class="rowA"><strong>Vorname</strong></td> 
                                    <td class="rowB"><input <?php echo $warning[vorname];?> type="text" class="textfield" name="vorname" size="40" value="<?php echo "$row[vorname]"?>"></td> 
                                </tr> 
                                <tr> 
                                    <td class="rowA"><strong>Nachname</strong></td> 
                                    <td class="rowB"><input <?php echo $warning[nachname];?> type="text" class="textfield" name="nachname" size="40" value="<?php echo $row['nachname']; ?>"></td> 
                                </tr> 
                               </table> 
                            <br><input type="submit" name="submit" value="update" class="submit"> <input type="submit" name="cancel" value="cancel" class="submit" onclick="self.close()"> 
    <?php 
      


    ?>
    Danke !

    Grüße
    pad

    ##Edit: unnötigen Code gelöscht...
    Zuletzt geändert von pad; 29.12.2005, 11:02.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454

    Lesen und befolgen..
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Scheint ein Logikfehler zu sein.
      PHP-Code:
             if ($errors 0) { 
      ...
                       unset(
      $flag); 
                      } 
      ...
        if(!
      $flag
        { 
                        
      $result mysql_query("SELECT * FROM kunden WHERE user_id = '$user_id'"); 
                        
      $row mysql_fetch_array($result); 
      Wenn ein Fehler aufgetreten ist, wird $flag gelöscht, was zur Folge hat, dass die Daten aus der Datenbank geholt werden.
      Das hast Du selbst so programmiert.

      Kommentar


      • #4
        Original geschrieben von DSB
        Scheint ein Logikfehler zu sein.
        PHP-Code:
               if ($errors 0) { 
        ...
                         unset(
        $flag); 
                        } 
        ...
          if(!
        $flag
          { 
                          
        $result mysql_query("SELECT * FROM kunden WHERE user_id = '$user_id'"); 
                          
        $row mysql_fetch_array($result); 
        Wenn ein Fehler aufgetreten ist, wird $flag gelöscht, was zur Folge hat, dass die Daten aus der Datenbank geholt werden.
        Das hast Du selbst so programmiert.
        Hi,

        stimmt, hast recht! Danke!

        Aber wie realisier ich es denn dann besten? Kannst du mir nen Tipp oder so geben?

        Sofern bei mir momentan eine Fehler auftritt, wird dieser überhalb des Formluars angezeigt. Mache ich > unset($flag); < jetzt weg, erscheint das Formular nicht, sondern die Fehlermeldung und ich muss zurück klicken.

        Ich muss ja im Falle eines Fehlers die Datenbankabfrage,- anzeige ausblenden... Wie kann ich denn das am geschicktesten machen?

        Danke!
        Grüße
        pad

        Kommentar


        • #5
          An alle die vielleicht das selbe Problem haben:

          Anstatt

          PHP-Code:
            if(!$flag)
            {
                            
          $result mysql_query("SELECT * FROM kunden WHERE user_id = '$user_id'");
                            
          $row mysql_fetch_array($result);

          ...  
          //Formular


          diesen hier verwenden:
          PHP-Code:
            if(!$flag and !$errors)
            {
                            
          $result mysql_query("SELECT * FROM kunden WHERE user_id = '$user_id'");
                            
          $row mysql_fetch_array($result);
            }
          // und hier das Formular einfügen 
          und im Formular zu

          PHP-Code:
          echo $row[feldname]; 
          PHP-Code:
          echo $feldname
          hinzufügen

          Grüße

          Kommentar


          • #6
            Is doch soweit ok was du da machst...

            PHP-Code:
            <?php
            $errors 
            0;
            $err_text = array();

            if (empty(
            $vorname))
            {
              
            $errors++;
              
            $err_text["vorname"] = "Sie müssen einen Vornamen angeben";
            }
            // elseif usw.

            if ($errors 0)
            {
              echo 
            $errors "Fehler";
              
            // Formular wieder anzeigen !
            }
            else
            {
              
            // Eintrag in die Datenbank
            }
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar

            Lädt...
            X