DB via Formular ändern

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

  • DB via Formular ändern

    Hallo an die Runde! Erster Eintrag hier!

    Leider stehe ich nun nach einigen langen Nächten an.
    Ich habe ein News-Script gebastelt in dem man einen Titel, das Datum und einen Newstext via Formular einfügen kann. Nun hab ich es auch geschafft diese wieder in einem Formular auszulesen..

    edit.php = Anzeige der DB mit einem ändern Link
    aendern.php = Anzeige der ausgewählten News als Formular
    update.php = Ändern der Daten

    edit.php
    PHP-Code:
    $abfrage "SELECT * FROM test ORDER BY id DESC";
    $ergebnis = @mysql_query$abfrage ) or die( "Fehler: " mysql_error() );
    while ( 
    $row mysql_fetch_assoc$ergebnis ) )
    {
    echo 
    "<a href=\"aendern.php?id="$row['id'] ."\">"$row['h1'] ."</a><br>";

    aendern.php
    PHP-Code:
    <?
    $abfrage = "SELECT * FROM test WHERE id = '". mysql_escape_string( $_GET['id'] ) ."'";
    $ergebnis = @mysql_query( $abfrage ) or die( "Fehler: " . mysql_error() );
    $link = mysql_fetch_assoc( $ergebnis );
    ?>

    <form action="update.php" method="post" name="form">
    Titel:<br><input type="text" name="link1" value="<?= $link['h1'?>"><br>
    Date:<br><input type="text" name="link2" value="<?= $link['date'?>"><br>
    News:<br><input type="text" name="link3" value="<?= $link['news'?>"><br>
    <button type="submit">update</button>
    </form>
    Und hier mein Problem in der update.php. Bis jetzt klappt alles. Nun weiss ich allerdings nicht wie ich die ID von aendern.php auf update.php übertragen kann. So wie es zurzeit unten steht geht es zwar, aber es werden alle Einträge geändert. Also alle News sind dann gleich! Da ich eben nicht weiss was ich als "WHERE ID" einfügen soll.

    update.php
    PHP-Code:
    <?
    $sql = "UPDATE test SET h1 = '$link1', date = '$link2', news = '$link3'";
    mysql_query($sql);
    ?>
    Leider, bin mit meinem Latein an Ende!
    Vielen Dank für eure Antworten!

  • #2
    Von edit.php zu ändern.php hast du die id per GET weitergegeben.

    Genauso kannst du sie jetzt mit Hilfe eines hidden-inputs per POST von ändern.php zu update.php weitergeben.
    ich glaube

    Kommentar


    • #3
      Original geschrieben von ministry
      Von edit.php zu ändern.php hast du die id per GET weitergegeben.

      Genauso kannst du sie jetzt mit Hilfe eines hidden-inputs per POST von ändern.php zu update.php weitergeben.
      Hallo!

      Danke dir. Ja an dem bastle ich gerade. Leider klappts nicht so richtig!

      Könntest du mir vl. mit paar Code-Schnippsel den Anstoß geben!

      Danke dir

      Kommentar


      • #4
        Was davon kennst du nicht?

        Ein <form method="post"> ???
        Ein <input type="hidden"> ???

        Kommentar


        • #5
          Könntest du mir vl. mit paar Code-Schnippsel den Anstoß geben!
          Du gibst ja bereits einen GET Parameter von edit and ändern. Mach es genau so von ändern an update.
          Btw: du bist dir schon bewusst, dass du bei deinem Update einfach alle Datensätze anpasst. Falls das nicht gewünscht ist solltest du in einem WHERE den Datensatz einschränken (z.B. anhand der ID).

          Gruss

          tobi

          p.s. läuft dein Server mit register_globals on oder off? phpinfo() kann weiterhelfen.
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Original geschrieben von jahlives
            Du gibst ja bereits einen GET Parameter von edit and ändern. Mach es genau so von ändern an update.
            Btw: du bist dir schon bewusst, dass du bei deinem Update einfach alle Datensätze anpasst. Falls das nicht gewünscht ist solltest du in einem WHERE den Datensatz einschränken (z.B. anhand der ID).

            Gruss

            tobi

            p.s. läuft dein Server mit register_globals on oder off? phpinfo() kann weiterhelfen.
            Genau das will ich ja. Ich lasse mir alle News in der edit.php anzeigen, wähle dann eine aus die dann in der aendern.php ausgelesen wird. Und genau diese möchte ich dort bearbeiten und auch NUR diese mit den geänderten Daten überschreiben. Deswegen suche ich einen Weg die ID von aendern.php zu update.php zu übergeben. Leider klappt das bei mir zurzeit noch nicht...

            BTW: Mit globals on!

            Kommentar


            • #7
              Dann mach register globals aus

              Was klappt nicht?

              Mach, wie schon gesagt, ein <input type="hidden" name="id" value="$_GET['id']"> ins Formular und schränke dann das UPDATE-SQL mit WHERE id = $_POST['id'] ein.

              Das ist jetzt schon fast vorgekaut zu nennen
              ich glaube

              Kommentar


              • #8
                Deswegen suche ich einen Weg die ID von aendern.php zu update.php zu übergeben. Leider klappt das bei mir zurzeit noch nicht...
                Bei ner so guten Problembeschreibung kann man natürlich nur weiter drauf pochen, Grunlagen zu lernen. Vielleicht schafft du es später, vernünftige Details zu liefern, so dass wir uns wieder einklinken.

                BTW: Mit globals on!

                Kommentar


                • #9
                  Original geschrieben von ministry
                  Dann mach register globals aus

                  Was klappt nicht?

                  Mach, wie schon gesagt, ein <input type="hidden" name="id" value="$_GET['id']"> ins Formular und schränke dann das UPDATE-SQL mit WHERE id = $_POST['id'] ein.

                  Das ist jetzt schon fast vorgekaut zu nennen
                  Vielen Dank für deine Hilfe!

                  Nun gehts! War leider mein Fehler! Hab anstatt value=<?= $_GET['id'] ?> nur value=" $_GET['id']"> geschrieben!

                  Ich danke für eure schnelle und tolle Hilfe!

                  @TobiaZ:
                  Schießt du dich auf jeden Newbie ein?

                  Kommentar


                  • #10
                    Ne.

                    Kommentar

                    Lädt...
                    X