Update problem

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

  • Update problem

    hi Leute,

    sagt mal habe seit tagen ein Problem:
    habe ein updateskript mit PhP geschrieben das funzt auch, nur felder in die ich nichts reinschreibe löscht er mir aber in der tabelle auch.
    nun wurde mir gesagt lade erst den inhalt in die eingabefelder und ändere alles was du willst und die felder die ich nicht verändere überschreibt er mit den selbigen text dann.
    die Idee fand ich recht gut aber schaffe es leider nicht da ich erst seit kurzem mit mysql und PhP arbeite.

    nun meine frage hat nicht wer so was schon mal gebaut und ich könnte mir das mal anschauen ?
    oder kennt wer so ein skript ? Nicht das Ihr denkt bin Faul ...bekomme das echt nicht auf die Reihe

    danke steeli
    Last edited by Steelman; 07-11-2005, 20:08.

  • #2
    Sekunde...du willst einfach nur Textfelder mit zuvor ausgelesenen Daten "befüllen", diese dann unter Umständen verändern und dann die neuen Werte wieder in der db speichern ?

    Wenn dem so ist, lies deine Daten aus der db aus und trage sie als value in die Textfelder ein.

    Sollte etwa so aussehen :

    PHP Code:
    ...
    ...
    echo 
    "<td align='right'>Vorname : </td><td align='left'><input type='text'
     name='vorname' value='"
    .$row[vorname]."' size='30'></td></tr><tr>";
    ...
    ... 
    Also : Auslesen, per value in die Textfelder eintragen, dann (nach deinen Änderungen) die Textfelder auslesen und die Werte in die db eintragen
    Last edited by Tommy75; 07-11-2005, 20:14.

    Comment


    • #3
      ich zeige dir mal mein skript

      PHP Code:
      <form action="" method="post">
      Welche Idschueler? <input type="text" name="idschueler"><br>
      Elternname: <input type="text" name="elternname"
      Value="<?php echo $elternname ?>"><br>
      Elternpasswort: <input type="text" name="elternpasswort"
      Value="<?php echo $elternpasswort ?>"><br>
      Schuelername: <input type="text" name="schuelername"
      Value="<?php echo $schuelername ?>"><br>
      Lehrername: <input type="text" name="lehrername"
      Value="<?php echo $lehrername ?>"><br>
      E-Mail: <input type="text" name="emaileltern"
      Value="<?php echo $emaileltern ?>"><br>
      <br><br>
      <input type="submit" value="Update durchführen" name="submit">
      </form>
      <?php
      if (!empty($_POST["submit"])) {

      // auf datenbank login
      require ("config.inc.local.php");
      ////////////////////////////////////////////////
      $sql1="select * FROM eltern"
      $result=mysql_query($sql1); 
      while (
      $row=mysql_fetch_assoc($result)) {
      echo 
      "$row[$elternname]<br>\n"

      /////////////////////////////////////////////////////////
      $sql="UPDATE eltern SET " .  
      "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

      "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]' WHERE idschueler='$_POST[idschueler]'"


      if (
      mysql_query($sql)) {
      echo 
      "<p>Update erfolgreich!</p>";
      }
      else {
      echo 
      "<p>Update nicht erfolgreich!</p>";
      }

      mysql_close();
      }
      ?>
      <p><a href="abfrage.php">update anschauen</a>
      </body>
      </html>
      kommt aber kein inhalt in den eingabefenster??

      Comment


      • #4
        Na, ist doch klar. Du musst die Werte vorher natürlich auslesen aus der db

        PHP Code:
        $mysqlabfr "SELECT * FROM eltern WHERE *****";
        $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
        $row mysql_fetch_array($mysqlerg); 
        ***** <---- dort musst du angeben, welchen Datensatz du auslesen willst, z.B. WHERE name = 'Hans'

        Dann baust du deine inputs so um :

        PHP Code:
        Elternname: <input type="text" name="elternname"
        Value="<?php echo $row[elternname]; ?>"><br>
        anstelle von $row[elternname] kannst du auch schreiben $row[1] (falls "elternname" deine zweite Spalte ist, ansonsten halt entsprechend anpassen. Gleiches gilt für alle anderen Spalten).
        Die 1 steht für die zweite Spalte in deiner db (deine Spalten fangen mit 0 an )

        Also nochmal : ERST die gewünschten Daten aus der db abfragen, dann werden sie - eine korrekte Einbindung in deine input-Felder vorausgesetzt - angezeigt. Dann Daten ändern wie du es möchtest und dann speichern.

        Comment


        • #5
          ok danke ich versuche mal mein glück ....

          und danke nochmal freu

          steeli

          Comment


          • #6
            so wenn ich alles richtig verstanden habe sieht das skript so aus

            PHP Code:
            <form action="" method="post">
            Elternname: <input type="text" name="elternname"
            Value="<?php echo $row[elternname]; ?>"><br>
            Elternpasswort: <input type="text" name="elternpasswort"
            Value="<?php echo $row[elternpasswort]; ?>"><br>
            Schuelername: <input type="text" name="schuelername"
            Value="<?php echo $row[schuelername]; ?>"><br>
            Lehrername: <input type="text" name="lehrername"
            Value="<?php echo $row[lehrername]; ?>"><br>
            E-Mail: <input type="text" name="emaileltern"
            Value="<?php echo $row[emaileltern]; ?>"><br>
            <br><br>
            <input type="submit" value="Update durchführen" name="submit">
            </form>
            <?php
            if (!empty($_POST["submit"])) {

            // auf datenbank login
            require ("config.inc.local.php");


            //////////////
            $mysqlabfr "SELECT * FROM eltern WHERE elternname=frank bauer";
            $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
            $row mysql_fetch_array($mysqlerg);

            /////////////////////////////////////////////////////////
            $sql="UPDATE eltern SET " .  
            "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

            "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]' WHERE idschueler='$_POST[idschueler]'"


            if (
            mysql_query($sql)) {
            echo 
            "<p>Update erfolgreich!</p>";
            }
            else {
            echo 
            "<p>Update nicht erfolgreich!</p>";
            }

            mysql_close();
            }
            ?>
            <p><a href="abfrage.php">update anschauen</a>
            </body>
            </html>
            leider keine Inhalte in den eingabefeldern zu sehen ??
            Aber denke wohl, das ich noch ein fehler drin habe aber wo ?

            steeli

            Comment


            • #7
              PHP Code:
              <?php
              $mysqlabfr 
              "SELECT * FROM eltern WHERE elternname='frank bauer'";
              $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
              $row mysql_fetch_array($mysqlerg);
              ?>

              <form action="" method="post">
              Elternname: <input type="text" name="elternname"
              Value="<?php echo $row[elternname]; ?>"><br>
              Elternpasswort: <input type="text" name="elternpasswort"
              Value="<?php echo $row[elternpasswort]; ?>"><br>
              Schuelername: <input type="text" name="schuelername"
              Value="<?php echo $row[schuelername]; ?>"><br>
              Lehrername: <input type="text" name="lehrername"
              Value="<?php echo $row[lehrername]; ?>"><br>
              E-Mail: <input type="text" name="emaileltern"
              Value="<?php echo $row[emaileltern]; ?>"><br>
              <br><br>
              <input type="submit" value="Update durchführen" name="submit">
              </form>
              <?php
              if (!empty($_POST["submit"])) {

              // auf datenbank login
              require ("config.inc.local.php");


              //////////////

              /////////////////////////////////////////////////////////
              $sql="UPDATE eltern SET " .  
              "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

              "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]' WHERE idschueler='$_POST[idschueler]'"


              if (
              mysql_query($sql)) {
              echo 
              "<p>Update erfolgreich!</p>";
              }
              else {
              echo 
              "<p>Update nicht erfolgreich!</p>";
              }

              mysql_close();
              }
              ?>
              <p><a href="abfrage.php">update anschauen</a>
              </body>
              </html>
              Probier es mal so

              Comment


              • #8
                jo funzt ...musste nur das auch noch nach oben legen

                // auf datenbank login
                require ("config.inc.local.php");

                danke danke danke

                nur eine Frage hätte ich noch wie könnte man das dynamich machen,

                wie so ein suchfeld gebe ich die ID oder namen ein ladet er die ein ?

                haste noch tip da ? aber nur wenn du noch bock hast , hast mir so schon gut geholfen

                bis denn
                steeli

                PS stelle grade fest er lädt jetzt zwar alles in die eingabefelder und bei button druck schreibt er auch war erfolgreich ...aber in datenbank sind die alten daten drin ???????
                Last edited by Steelman; 07-11-2005, 21:31.

                Comment


                • #9
                  "wie so ein suchfeld gebe ich die ID oder namen ein ladet er die ein ?"

                  Damit meinst du sicher, dass du ein Textfeld hast, in das der Benutzer seinen Namen einträgt und dann seine Daten angezeigt bekommt / ändern kann, richtig ?

                  Wenn ja, sollte dein code so aussehen :

                  PHP Code:
                  <form action="" method="post">
                  Elternname: <input type="text" name="elternname"><br>
                  <br><br>
                  <input type="submit" value="Daten anzeigen" name="action">
                  </form>
                  <?php
                  if (!empty($_POST[action]))
                  {
                  $mysqlabfr "SELECT * FROM eltern WHERE elternname='$_POST[elternname]'";
                  $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
                  $row mysql_fetch_array($mysqlerg);
                  ?>

                  <form action="" method="post">
                  Elternname: <input type="text" name="elternname"
                  Value="<?php echo $row[elternname]; ?>"><br>
                  Elternpasswort: <input type="text" name="elternpasswort"
                  Value="<?php echo $row[elternpasswort]; ?>"><br>
                  Schuelername: <input type="text" name="schuelername"
                  Value="<?php echo $row[schuelername]; ?>"><br>
                  Lehrername: <input type="text" name="lehrername"
                  Value="<?php echo $row[lehrername]; ?>"><br>
                  E-Mail: <input type="text" name="emaileltern"
                  Value="<?php echo $row[emaileltern]; ?>"><br>
                  <br><br>
                  <input type="submit" value="Update durchführen" name="submit">
                  </form>
                  <?php
                  if (!empty($_POST["submit"])) {

                  // auf datenbank login
                  require ("config.inc.local.php");


                  //////////////

                  /////////////////////////////////////////////////////////
                  $sql="UPDATE eltern SET " .  
                  "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

                  "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]' WHERE idschueler='$_POST[idschueler]'"


                  if (
                  mysql_query($sql)) {
                  echo 
                  "<p>Update erfolgreich!</p>";
                  }
                  else {
                  echo 
                  "<p>Update nicht erfolgreich!</p>";
                  }

                  mysql_close();
                  }
                  ?>
                  <p><a href="abfrage.php">update anschauen</a>
                  <?php
                  }
                  <?
                  </
                  body>
                  </
                  html>

                  So in etwa sollte es gehn, musst allerdings wieder dein

                  PHP Code:
                  // auf datenbank login
                  require ("config.inc.local.php"); 
                  nach oben legen.

                  Probier einfach mal, ich kann dir heute leider nicht mehr helfen, muss jetzt weg.... Aber sind ja noch genug andere hier, die sicher gerne helfen

                  Comment


                  • #10
                    danke dir nochmal teste gleichmal

                    bis bald
                    steeli

                    Comment


                    • #11
                      könnte nochmal einer schauen bitte ??

                      soweit macht es alles nur bei update verändert er nicht die daten ..(datenbank wird nicht überschrieben)

                      skript

                      PHP Code:
                      </head>
                      <body>
                      <h3>Gebe hier den Namen ein der Abzugleichen ist </h3>

                      <form action="" method="post">
                      Elternname: <input type="text" name="elternname"><br>
                      <br><br>
                      <input type="submit" value="Daten anzeigen" name="action">
                      </form>
                      <?php

                      // auf datenbank login
                      require ("config.inc.local.php");
                      /////////////////////////////////
                      //abfrage des suchbutton
                      if (!empty($_POST[action]))
                      {
                      $mysqlabfr "SELECT * FROM eltern WHERE elternname='$_POST[elternname]'";
                      $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
                      $row mysql_fetch_array($mysqlerg);

                      ?>
                      <h3>Hier daten Verändern ( Update) </h3>
                      <form action="" method="post">
                      Elternname: <input type="text" name="elternname"
                      Value="<?php echo $row[elternname]; ?>"><br>
                      Elternpasswort: <input type="text" name="elternpasswort"
                      Value="<?php echo $row[elternpasswort]; ?>"><br>
                      Schuelername: <input type="text" name="schuelername"
                      Value="<?php echo $row[schuelername]; ?>"><br>
                      Lehrername: <input type="text" name="lehrername"
                      Value="<?php echo $row[lehrername]; ?>"><br>
                      E-Mail: <input type="text" name="emaileltern"
                      Value="<?php echo $row[emaileltern]; ?>"><br>
                      <br><br>
                      <input type="submit" value="Update durchführen" name="submit">
                      </form>
                      <?php

                      /////////////////////Updaten
                      if (!empty($_POST["submit"])){

                      $sql="UPDATE eltern SET " .  
                      "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

                      "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]'"


                      if (
                      mysql_query($sql)){
                      echo 
                      "<p>Update erfolgreich!</p>";
                      }
                      else {
                      echo 
                      "<p>Update nicht erfolgreich!</p>";
                      }

                      mysql_close();
                      }
                      }
                      ?>
                      <p><a href="abfrage.php">Hier dein Update anschauen</a>
                      </body>
                      </html>
                      finde leider den fehler nicht

                      danke steeli

                      Comment


                      • #12
                        Überleg mal genau welchen Bereich diese Bedingung ausgeben soll:

                        PHP Code:
                        if (!empty($_POST[action]))

                        bzw. denk mal darüber nach was sie im Moment schon alles mit einbezieht...

                        Comment


                        • #13
                          Na er soll diesen bereich ausgeben

                          $sql="UPDATE eltern SET " .
                          "elternname='$_POST[elternname]

                          oder sehe ich das falsch ??

                          er soll doch die daten neu schreiben.....


                          steeli

                          Comment


                          • #14
                            Naja das soll er dann ausführen NACHDEM man auf submit klickt, richtig?

                            Aber schau doch mal wo die o.g. if-bedingung beginnt und aufhört, sprich welchen Bereich diese abdeckt (Anfang-Ende).

                            Schau nochmal genau

                            Comment


                            • #15
                              jo du hast recht ...aber ich sehe nicht was du meinst sorry
                              bin erst so 14 tage an mysql und php na denke das merkt man auch
                              habe mir gutes buch gekauft und arbeite das so ab

                              na ja ich gebe nicht auf

                              steeli

                              PS habe es jetzt so gemacht ..jetzt zieht er die daten ein und ich kann sie updaten ...leider schreibt er jetzt alle datensätze mit gleichen inhalt in der tabelle ..hatte 5 datensätze drin jetzt sind 5 gleiche drin ohhhhhhmannn

                              PHP Code:
                              </head>
                              <body>



                              <h3>Gebe hier den Namen ein der Abzugleichen ist </h3>

                              <form action="" method="post">
                              Elternname: <input type="text" name="elternname"><br>
                              <br><br>
                              <input type="submit" value="Daten anzeigen" name="action">
                              </form>
                              <?php

                              // auf datenbank login
                              require ("config.inc.local.php");
                              /////////////////////////////////
                              //abfrage des suchbutton
                              if (!empty($_POST[action]))
                              {
                              $mysqlabfr "SELECT * FROM eltern WHERE elternname='$_POST[elternname]'";
                              $mysqlerg mysql_query($mysqlabfr) or die (mysql_error());
                              $row mysql_fetch_array($mysqlerg);}

                              ?>
                              <h3>Hier daten Verändern ( Update) </h3>
                              <form action="" method="post">
                              Elternname: <input type="text" name="elternname"
                              Value="<?php echo $row[elternname]; ?>"><br>
                              Elternpasswort: <input type="text" name="elternpasswort"
                              Value="<?php echo $row[elternpasswort]; ?>"><br>
                              Schuelername: <input type="text" name="schuelername"
                              Value="<?php echo $row[schuelername]; ?>"><br>
                              Lehrername: <input type="text" name="lehrername"
                              Value="<?php echo $row[lehrername]; ?>"><br>
                              E-Mail: <input type="text" name="emaileltern"
                              Value="<?php echo $row[emaileltern]; ?>"><br>
                              <br><br>
                              <input type="submit" value="Update durchführen" name="submit">
                              </form>
                              <?php

                              /////////////////////Updaten
                              if (!empty($_POST["submit"])){

                              $sql="UPDATE eltern SET " .  
                              "elternname='$_POST[elternname]', elternpasswort='$_POST[elternpasswort]', schuelername='$_POST[schuelername]', " 

                              "lehrername='$_POST[lehrername]', emaileltern='$_POST[emaileltern]'"


                              if (
                              mysql_query($sql)){
                              echo 
                              "<p>Update erfolgreich!</p>";
                              }
                              else {
                              echo 
                              "<p>Update nicht erfolgreich!</p>";
                              }

                              mysql_close();
                              }

                              ?>
                              <p><a href="abfrage.php">Hier dein Update anschauen</a>
                              </body>
                              </html>
                              Last edited by Steelman; 08-11-2005, 13:21.

                              Comment

                              Working...
                              X