Announcement

Collapse
No announcement yet.

HTML Formular zum ändern von Daten in MySQL Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML Formular zum ändern von Daten in MySQL Datenbank

    Hallo zusammen,

    ich hab leider keine erfahrung mit der UPDATE Funktion in PHP/MySQL.
    Ich habe folgendes Problem:
    Ich habe eine MySQL Datenbank, mit einer Tabelle welche eine Lehrerliste enthält. Ich möchte nun diese Liste in einem HTML Formular aufrufen und ändern, das ich nicht jedes mal in phpmyadmin rein muss.

    Folgenden Code hab ich bereits geschrieben:

    PHP Code:
    <html>
     <head>
      <title>Update Formular</title>
     </head>
    <body>


    <form action="<?php print $PHP_SELV ?>" method="post">






                                                    <?php
                                                                                                                    
                                                            
    include("config/mysql.php");

                                                            
    $link2 =  mysql_connect$server$benutzer$passwort  );
                                                            if ( ! 
    $link2 )
                                                                die( 
    "<html><br><br><br><font color=\"red\">Momentan leider keine Verbindung zum Server. Wir bitten um Ihr Verstaendnis!" );
                                                            
    mysql_select_db$db$link2 )
                                                                   or die ( 
    "Server Error. Wir bitten um Ihr Verstaendnis" );
                                                                   
                                                            


                                                            
    $ergebnis mysql_query"SELECT * FROM lehrer_neu ORDER BY name" );

                                                            while ( 
    $datensatz mysql_fetch_array$ergebnis ) )
                                                                {
                                                                    
    $id $datensatz["id"];
                                                                    
    $name $datensatz["name"];
                                                                    
    $faecher $datensatz["faecher"];
                                                                    
    $fachsch $datensatz["fachsch"];
                                                                    
    $sprechstunde $datensatz["sprechstunde"];
                                                                                                   
    ?>
                                     <table>
                                                     <tr>
                            <td valign="top">
                                            <input type="text" name="name" size="35" value="<?php echo $name?>">
                            </td>
                            <td valign="top">
                                           <input type="text" name="faecher" size="35" value="<?php echo $faecher?>">
                            </td>
                            <td valign="top">
                                            <input type="text" name="fachsch" size="35" value="<?php echo $fachsch?>">
                            </td>
                            <td valign="top">
                                            <input type="text" name="sprechstunde" size="35" value="<?php echo $sprechstunde?>">
                            </td>
                            <td>
                                                                <p>
                              </td>
                            </tr>                   
                                        </table>


       <?php

                
    }
                
               
        
                       
    mysql_close($link2);
         

    ?>
    <input type="submit" value="&Uuml;bernehmen">
    </form>
    </html>
    Ich weiß jetzt leider nicht, wo und wie ich die UPDATE Funktion einbringen kann, damit wenn ich im Forumlar die Daten ändere, diese auch in die DB übernommen werden.
    Wäre super, wenn mir da kurz jemand helfen könnte!

    Schon mal herzlichen Dank im vorraus.

    Mfg
    Ulti

  • #2
    Hallo,

    wenn du erstmal gelesen bzw. gesucht hättest, dann hättest du gesehen das genau in diesem Forum jemand genau die gleiche Frage genau einen Thread vor dir gestellt hat: Daten in MySql Datenbank über PHP ändern, wie???

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      ja diesen Beitrag hab ich schon gesehen, leider bin ich anhand der Beiträge auch nicht auf meine Lösung gekommen. Müsste doch nur noch eine Zeile sein?

      Aber naja trozdem Danke.

      Gruß Ulti

      Comment


      • #4
        Hallo ulti

        Zunächst sei gesagt, daß man für Spaltennamen einer DB keine Schlüsselwörter, wie z.B. name verwendet!
        Ich hab' mal ein Auge auf Dein Skript geworfen und es wie folgt angepasst:
        PHP Code:
        <html>
         <head>
          <title>Update Formular</title>
         </head>
        <body>


        <form action="<?php echo $PHP_SELF?>" method="post">
        <?php
        include("config/mysql.php");
        $link2 =  mysql_connect$server$benutzer$passwort  ) or die( "Momentan leider keine Verbindung zum Server. Wir bitten um Ihr Verstaendnis!" );
        mysql_select_db$db$link2 ) or die ( "Server Error. Wir bitten um Ihr Verstaendnis" );

        if(isset(
        $_POST["submitted"])) {
            
        $_sql "UPDATE lehrer_neu";
            
        $_sql .= " SET lehrername='".$_POST["lehrername"]."'";
            
        $_sql .= " SET faecher='".$_POST["faecher"]."'";
            
        $_sql .= " SET fachsch='".$_POST["fachsch"]."'";
            
        $_sql .= " SET sprechstunde='".$_POST["sprechstunde"]."'";
            
        $_sql .= " WHERE id='".$_POST["id"]."'";
            
        mysql_query($_sql,$link2);
        } else {
            
        $ergebnis mysql_query"SELECT * FROM lehrer_neu ORDER BY name" );

            while ( 
        $datensatz mysql_fetch_array$ergebnis ) ) {
                
        $id $datensatz["id"];
              
        $lehrername $datensatz["lehrername"];
              
        $faecher $datensatz["faecher"];
              
        $fachsch $datensatz["fachsch"];
              
        $sprechstunde $datensatz["sprechstunde"];
        ?>
        <table>
         <tr>
          <td valign="top"><input type="hidden" name="id" size="35" value="<?php echo $id?>"></td>
          <td valign="top"><input type="text" name="lehrername" size="35" value="<?php echo $lehrername?>"></td>
          <td valign="top"><input type="text" name="faecher" size="35" value="<?php echo $faecher?>"></td>
          <td valign="top"><input type="text" name="fachsch" size="35" value="<?php echo $fachsch?>"></td>
          <td valign="top"><input type="text" name="sprechstunde" size="35" value="<?php echo $sprechstunde?>"></td>
          <td><p></td>
         </tr>                   
        </table>

        <?php
            
        }

        mysql_close($link2);
             
        ?>
        <input type="submit" name="submitted" value="&Uuml;bernehmen">
        </form>
        <?php

        }

        ?>
        </html>
        Aus name habe ich, wie Du siehst lehrername gemacht, falls Du Dich wunderst.
        Deine Tabellenspalte müßtest Du natürlich dementsprechend auch umbenennen.
        Die einfachen Hochkomma für die id beim UPDATE müssen evtl. weggelassen werden, falls es sich um int-Werte handelt. Mußt Du ausprobieren.

        Bitte beachte, daß ich das nur ungetestet angepasst habe, aber ich bin der Meinung, daß es so gehen sollte.
        Wenn nicht, solltest Du auf jeden Fall damit und dem Studieren der Hilfen ans Ziel kommen...
        PHP rocks!
        Eine Initiative der PHP Community

        Comment


        • #5
          Hallo,

          um es einfach immer wieder deutlich zu machen:
          $_POST, $_GET, $_REQUEST, $_COOKIE-Variablen gehören NIE ungeprüft und ungefiltert in einen SQL-String! Sieh dazu auch: Daten in MySql Datenbank über PHP ändern, wie???

          Einfach nurmal überlegen, was passiert wenn jemand für den Namen des Lehrers: "Max 'Maxi' Müller" eingibt oder als id: "1' or 1 or '1".

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Hallo Falk,

            Das ist vollkommen richtig! ich wollte jedoch nur einen Ansatz geben, wie er die UPDATE-Funktion einbauen kann.
            Daher habe ich Funktionen, wie z.B. mysql_escape_string() bzw. mysql-real-escape-string() erstmal weggelassen.
            Ein wenig modifizieren muß er das wahrscheinlich sowieso.

            @ulti:
            Grundsätzlich ist der Hinweis von Falk ein Muß!
            Da man aber von einem gesunden Maß an Eigeninitiative ausgeht,
            wirst Du sicherlich mit dem Online-Manual das richtige finden...
            PHP rocks!
            Eine Initiative der PHP Community

            Comment


            • #7
              Originally posted by shadowman View Post
              ... ich wollte jedoch nur einen Ansatz geben, wie er die UPDATE-Funktion einbauen kann.
              Das ist mir klar , jedoch gehört nach meiner Auffasung mindestens das Maskieren auch schon in den Ansatz, da ein String grundsätzlich IMMER Zeichen enthalten kann, die maskiert werden MÜSSEN. Deshalb sollte dies GRUNDLEGENDE Funktionalität auch in kurzen Beispielen sein.
              Originally posted by shadowman View Post
              ...Ein wenig modifizieren muß er das wahrscheinlich sowieso.
              ...
              Davon geh ich auch immer aus, aber gerade Anfänger sollte man auf die "Tücken" hinweisen - was ja jetzt geschehen ist

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment

              Working...
              X