Daten nachträglich ändern

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

  • Daten nachträglich ändern

    Hi @ll

    wie kann man unter PHP / MySQL daten ändern???

    Also ich lasse mir daten anzeigen und habe dann einen Link wenn ich darauf klicke werden die daten so angezeigt wie sie im Formular eingetragen wurden! und nun kann ich die daten ändern und dann nochmals eintragen nur sollen die orginaldateien überschrieben werden!! Wie funzt sowas??

    SOFARJOAT
    the end comes faster than you think - you've already reached it!

  • #2
    Ich nehme mal an, die angezeigten Daten kommen schon aus einer Datenbank.

    Anstatt die Formular-Daten nun wieder mit "INSERT INTO datenbank ..." zu schreiben benutzt Du den Update-Befehl:

    mysql_query = ("UPDATE datenbank SET feld1 = '$feld1', fled2 = '$feld2' WHERE id = '$id'");

    In der WHERE-Klausel trägst Du natürlich das Feld ein, an dem Du den Eintrag identifizierts.

    Hoffe das war das was Du meintest.

    Grüße, Andi

    Kommentar


    • #3
      Das is schon das so wie ichs meine!! Nur wie schaff ich das die daten in einem formular angezeigt werden?? Also: Daten werden ausgelesen -> in ein formular eingetragen -> daten werden geändert -> daten werden abgeschickt (updatet)

      SOFARJOAT
      the end comes faster than you think - you've already reached it!

      Kommentar


      • #4
        lies erst alles aus und weise die werte den Formularfeldern über das value zu
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Du liest deine Daten wieder aus der Datenbank (SELECT FROM datenbank ....) und ordnest die einzelnen Felder wieder Variablen zu.

          $feld1, $feld2 u.s.w

          Diese schreibst Du dann mittels php in die Formularfelder.
          <input type="text" name="feld1" value="<?print$feld1?>">

          Jetzt steht der Inhalt der Variablen wieder im Eingabefeld. Nun kann dieser geändert werden und von neuem in die Datenbank gespeichert werden.

          War dies des Rätsels Lösung ? ;-)

          Grüße, Andi

          Kommentar


          • #6
            SO ich hab volgendes Formular:

            Code:
            <html>
            
            <head>
            <meta http-equiv="Content-Language" content="de">
            <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
            <meta name="ProgId" content="FrontPage.Editor.Document">
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
            <link rel="stylesheet" type="text/css" href="style.css">
            <title>Daten eintragen</title>
            </head>
            
            <body bgcolor="#D6D3CE">
            <form action="dateneintragen.php3" method="POST">
            <div align="center">
              <center>
              <p>&nbsp;</p>
              <table border="2" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#00FF00" width="65%" id="AutoNumber2" bordercolorlight="#A5A2A5" bordercolordark="#A5A2A5">
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE" bgcolor="#D6D3CE">
                  <p align="left">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE" bgcolor="#D6D3CE">
                  <font size="4" face="Verdana">Format:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana"><select size="1" name="Art">
                  <option>.divx</option>
                  <option>.avi</option>
                  <option>.mepg</option>
                  <option>vcd</option>
                  <option>anders</option>
                  </select></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">Herkunft:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana"><select size="1" name="Herkunft">
                  <option>Internet</option>
                  <option>Tausch</option>
                  <option>Anders</option>
                  </select></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Qualität:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana"><select size="1" name="Qualitaet">
                  <option value="1">sehr gut</option>
                  <option value="2">gut</option>
                  <option value="3">naja</option>
                  <option value="4">schlecht</option>
                  </select></font></td>
                </tr>
                <tr>
                  <td width="7%" height="44" bordercolor="#D6D3CE" bgcolor="#D6D3CE">
                  <p align="left">&nbsp;</td>
                  <td width="30%" height="44" bordercolor="#D6D3CE" bgcolor="#D6D3CE">
                  <font size="4" face="Verdana">Sprache:</font></td>
                  <td width="72%" height="44" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana"><select size="1" name="Sprache">
                  <option value="1">deutsch</option>
                  <option value="2">englisch</option>
                  <option value="3">anders</option>
                  </select></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">Titel:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana"><input type="text" name="Titel" size="30"></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Sonstiges:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4"><input type="text" name="sonst" size="30"></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">Größe:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4"><input type="text" name="size" size="30"></font></td>
                </tr>
                <tr>
                  <td width="7%" height="44" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="30%" height="44" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">Verfilmer :</font></td>
                  <td width="72%" height="44" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4"><input type="text" name="verfilmer" size="30"></font></td>
                </tr>
                <tr>
                  <td width="7%" height="80" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="30%" height="80" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Hauptdarsteller:</font></td>
                  <td width="72%" height="80" bordercolor="#D6D3CE">
                  <textarea rows="4" name="darsteller" cols="35"></textarea></td>
                </tr>
                <tr>
                  <td width="7%" height="80" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="30%" height="80" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Story:</font></td>
                  <td width="72%" height="80" bordercolor="#D6D3CE">
                  <textarea rows="4" name="story" cols="35"></textarea></td>
                </tr>
                <tr>
                  <td width="7%" height="80" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="30%" height="80" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Details:</font></td>
                  <td width="72%" height="80" bordercolor="#D6D3CE">
                  <textarea rows="4" name="details" cols="35"></textarea></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Bild:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <input type="file" name="Bild" size="20"></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">
                  <font face="Verdana" size="4">Gesehen:</font></td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">ja: </font>
                  <input type="radio" value="ja" name="view"><font size="4" face="Verdana">|
                  nein</font><input type="radio" value="nein" name="view"></td>
                </tr>
                <tr>
                  <td width="7%" height="44" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="30%" height="44" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">Jahr:</font></td>
                  <td width="72%" height="44" bordercolor="#D6D3CE">
                  <font size="4" face="Verdana">
                  <!--webbot bot="Validation" b-value-required="TRUE" i-minimum-length="4" i-maximum-length="4" --><input type="text" name="Jahr" size="4" value="19" maxlength="4"></font></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  &nbsp;</td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  <p align="center"><input type="submit" value="Abschicken" name="B1"></form></td>
                </tr>
                <tr>
                  <td width="12%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="22%" height="45" bordercolor="#D6D3CE">&nbsp;</td>
                  <td width="75%" height="45" bordercolor="#D6D3CE">
                  &nbsp;</td>
                </tr>
                </form>
              </table>
              </center>
            </div>
            
            </body>
            
            </html>
            diese eingaben werden mit dem hier eingetragen:

            Code:
            <?php
            
            include ("verbindung.php3");
            
            $datum = date("d.m.Y");
            
            //--- IN DB EINTRAGEN ---------------------------------------
            
            $eintragen= "INSERT INTO dvd_datenbank (Titel, Art, Herkunft, Qualitaet, Size, sonst, Bild, view, Jahr, story, Sprache, verfilmer, darsteller, details, datum)
                                     values ( '$Titel', '$Art', '$Herkunft', '$Qualitaet', '$size', '$sonst', '$Bild', '$view', '$Jahr', '$story', '$Sprache', '$verfilmer', '$darsteller', '$details', '$datum')";
                                     
            if (! mysql_query( $eintragen, $link ) ) {
             print "<font color=\"#ff0000\" size=\"4\">ERROR!! Daten konnten nicht eingetragen werden!! ".mysql_error()."</font>"; }
             else {
             include ("DVD-Anzeigen.php3");
             
             }
            ?>
            So und nun baut mir das mal bidde so das ich depp das hernehmen kann!!

            SOFARJOAT
            the end comes faster than you think - you've already reached it!

            Kommentar


            • #7
              Aber dreist sind wir mal gar nicht!!!

              Immer langsam, dass schaffst Du schon selbst.
              Das mit dem Eintragen sieht doch schon ganz klasse aus.
              Beim Auslesen machst Du dann volgendes:
              $result = mysql_query("SELECT * FROM dvd_datenbank WHERE titel = '$titel'");
              $current = mysql_fetch_array($result);

              Dann kopierst Du einfach dein Eingabeformular wieder in den html-Body und gibst für alle Deine Textfelder folgendes ein:

              <input type="text" name="Titel" size="30" value="<?print$current['text']?>">
              <input type="sonst" name="Titel" size="30" value="<?print$current['sonst']?>">
              u.s.w.

              Für die Select-Boxen machst Du folgendes:
              <select size="1" name="Sprache">
              <option value="1" <?if ($current['text'] == 1) {print"selected";}?>>deutsch</option>
              <option value="2" <?if ($current['text'] == 2) {print"selected";}?>>englisch</option>
              <option value="3 <?if ($current['text'] == 1) {print"selected";}?>">anders</option>
              </select>

              Mit den anderen Select-Boxen machst Du das genau so. Achte darauf, dass alle Auswahlpunkte auch Werte enthalten. Deine oberen beiden Boxen haben keine!!!

              Das wars eigentlich. Dann schickst Du die Form wieder ab, anstatt dem INSERT heisst deine Query jetzt aber UPDATE dvd_datenbank SET text = '$text .... WHERE titel = '$titel'

              Dumm ist nur, wenn Du den Titel ändern willst, dann findet dein Script den nicht mehr in der Datenbank.
              Du solltest daher mit einer ID arbeiten, an der sich die Einträge identifizieren lassen. Stelle dieses Feld in deiner Datenbank auf auto_increment. Du musst dieses Feld beim Erstellen eines neuen Eintrags nicht setzten, es wird immer automatisch um eins erhöht.

              Wenn Du zum Auswählen des Eintrags eine generierte Linkliste mit allen Titeln hast, kannst Du weiterhin die Daten mit:
              ("SELECT * FROM dvd_datenbank WHERE titel = '$titel'");
              aufrufen. Beim updaten sollte es dann aber
              ("UPDATE dvd_datenbank SET text = '$text' usw... WHERE id= '$id");
              heissen.
              Diese ID musst Du dann genau wie den Inhalt eines Textfeldes als Value einem hidden_field in deinem Formular übergeben, damit die ID beim Senden wieder übermittelt wird.

              <input type="hidden" name="id" value="<?print$current['id']?>">

              So, ich geh jetzt aber in mein Bettchen!

              Gute Nacht...
              Der Andi

              Kommentar


              • #8
                Da waren die Augen schon zu müde!

                Die Textzeilen sollten so aussehen:
                <input type="text" name="Titel" size="30" value="<?print$current['Titel']?>">
                <input type="text" name="sonst" size="30" value="<?print$current['sonst']?>">

                In der IF-anweisung bei der Select-Box muss bei value="3" auch == 3 und nicht == 1 drinn stehen.

                Hoffe jetzt stimmt alles

                Gut's Nächtle...

                Kommentar


                • #9
                  Ha, einen hab ich doch noch gefunden:

                  Bei den Select-Boxen muss es natürlich "Sprache" heissen und nicht text, also:
                  <?if ($current['Sprache'] == 1) anstatt
                  <?if ($current['text'] == 1)

                  Anmerkung:
                  Eben geänderte Stelle muss bei den anderen Boxen natürlich so heissen wie die Box selber.
                  Und bei == 1 etc muss der entsprechende Wert der Auswahl rein. Arbeitest Du nicht mit Zahlen sondern Text, muss der in Anführungszeichen quasi:
                  if ($current['Qualitaet'] == "gut") { dann ....
                  if ($current['Qualitaet'] == "mist") { dann ....

                  Endgültig Schluss jetzt! Ich seh die Tastatur schon ganz verschwommen und der Wecker klingelt bald schon wieder.

                  Kommentar


                  • #10
                    juchu ich habs soweit!!

                    Nur wie kann ich die ID übergeben??

                    Code:
                    ...
                    print "<a href=\"DVD-Aendern.php3?$daten[id]\">". $daten[id] ."</a>";
                    ...
                    Code:
                    $result = mysql_query("SELECT * FROM dvd_datenbank WHERE id like '%$daten[id]%'");
                    Nur wird jez die Id übergeben aber es wird nicht jeder datensatz ausgewählt!

                    z.B. kick auf link mit Id 1 bringt das gleiche ergebniss wie ein klick auf einen link mit ID 2!!

                    Hängt das mit dem like zusammen??

                    aber wenn ich where id = .. mach dann wird nix übergeben!!!

                    SOFARJOAT
                    the end comes faster than you think - you've already reached it!

                    Kommentar


                    • #11
                      Deine id darf nicht als LIKE abgefragt werden und muss auch als eigenständige Variable drinn stehen.
                      $result = mysql_query("SELECT * FROM dvd_datenbank WHERE id = '$id'");
                      Im Link bekommst Du ja auch dass Schlüssel/Wert Paar in der URL geliefert z.B.:
                      http://www.host.de/verzeichnis/datei.php4?id=3

                      Jeder Eintrag muss dann eine eigene ID haben

                      Gruß, Andi

                      Kommentar


                      • #12
                        also wenn ich den link so hab:

                        Code:
                        ...
                        print "<a href=\"DVD-Aendern.php3?$daten[id]\">". $daten[id] ."</a>";
                        ...
                        dann steht im link:

                        DVD-Aendern.php3?1

                        und nicht id=1 warum?? was mach ich falsch??

                        SOFARJOAT
                        the end comes faster than you think - you've already reached it!

                        Kommentar


                        • #13
                          Falls das ganze nur für Dich ist und nicht für die Besucher,
                          isntallier Dir einfach den phpMyAdmin:
                          http://sourceforge.net/projects/phpmyadmin
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar


                          • #14
                            na so was , dieselbe Frage versuche ich doch schon etwas weiter vorne zu klären ...
                            sozusagen nachschauen was unten im link steht ...

                            Kommentar


                            • #15
                              könntest du das was du gepostet hast bidde quoten!!

                              das ganze soll ned über php myadmin laufen!!

                              was muss ich ändern das es geht???

                              JOAT
                              the end comes faster than you think - you've already reached it!

                              Kommentar

                              Lädt...
                              X