Christopher WEBER: Befehl UPDATE geht irgendwie net!

Grüß euch hab leider schon wieder ein problem:

Habe jetzt die ausgabe von meiner DB geschaft und will sie jetzt ändern. Funktioniert auch nur wenn ich jetzt auf "BEITRAG ÄNDERN" geh ladet er mir die "ausgabe-detail-aendern.php" aber er ändert nix! Wieso??

Quelltext von "ausgabe-detail.php"  -Hier wird der alte text ausgegeben und dann wirds weiterverarbeitet zur "ausgabe-detail-aendern.php"!

+++++++++++++++++++++
"ausgabe-detail.php"
+++++++++++++++++++++

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * FROM $tabelle  WHERE id = $_REQUEST[id]";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
$id = $_GET['id'] + 1;
 while ($ausgabe = mysql_fetch_array ($result))
 {
 echo ("
<form action="ausgabe-detail-aendern.php" method=post>
<b>Idenfikationsnummer: $ausgabe[id]<br><br>
Text:<br><br>
<textarea rows="30%" cols="100%" name="$textnew">$ausgabe[text]</textarea><br>
<input type="submit" value="Beitrag ändern" name="Senden" size="20">

");
 }

mysql_close ($dbverbindung)

?>

+++++++++++++++++++++
ausgabe-detail-aendern.php"
+++++++++++++++++++++

$dbverbindung = mysql_connect ($host, $user, $password);
$id = $_GET['id'] + 1;
$dbanfrage = "UPDATE afis SET text='$textnew' WHERE id='$ausgabe[id]'";

$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

mysql_close ($dbverbindung)

?>

  1. Hallo Christopher,

    $dbanfrage = "SELECT * FROM $tabelle  WHERE id = $_REQUEST[id]";

    mutig, mutig - du baust Daten die vom User kommen unüberprüft in deinen Query ein ...

    $result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

    die Funtion mysql_db_query ist veraltet - verwende mysql_select_db und mysql_query (siehe http://de3.php.net/mysql_db_query)?

    echo ("
    <form action="ausgabe-detail-aendern.php" method=post>

    warum beendest du den php-Bereich nicht vor dem <form und machst ihn nach dem Formular wieder auf?

    [...]
    <input type="submit" value="Beitrag ändern" name="Senden" size="20">
    ");
     }

    du machst innerhalb der Schleife jede Menge <form>s auf - aber geschlossen werden die nicht mehr.

    $dbanfrage = "UPDATE afis SET text='$textnew' WHERE id='$ausgabe[id]'";

    Wo kommt $textnew her? Wo kommt $ausgabe['id'] her? Was gibt ein 'echo $dbanfrage;' aus? gibt mysql_error() etwas aus?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hello!

      $textnew sollte von "ausgabe-detail.php" ausgeleseb werden
      $ausgabe['id']  -  wird von der DB ausgelesen!

      1. Hallo Christopher,

        $textnew sollte von "ausgabe-detail.php" ausgeleseb werden

        Meinst du vielleicht $_POST['textnew']? btw: mysql_escape_string nicht vergessen.

        $ausgabe['id']  -  wird von der DB ausgelesen!

        Und wo ist die Abfrage dazu?

        Und wie lauten die Antworten auf die zwei folgenden Fragen?

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Hello! Das ist jetzt ne gute frage*g*

          Irgendwie stehe ich auf der Leitung.

          Nochmal von vorne:

          Habe 2 Scripte.

          Das 1.Schript: Da wird die Datei aus der DB ausgelesen und man kann den text dann ändern. Der Quelltext sieht so aus:

          <form action="ausgabe-detail-aendern.php" method=post>
          <?
          $host = "127.0.0.1";
          $user = "112";
          $password = "k21";
          $dbname = "112"
          $tabelle ="1212";
          $dbverbindung = mysql_connect ($host, $user, $password);
          $dbanfrage = "SELECT * FROM $tabelle  WHERE id = $_REQUEST[id]";
          $result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
          $id = $_GET['id'] + 1;
           while ($ausgabe = mysql_fetch_array ($result))
           {
           echo ("
          <b>Idenfikationsnummer: $ausgabe[id]<br><br>
          Text:<br><br>
          <textarea rows="30%" cols="100%" name="$_POST['textnew']">$ausgabe[text]</textarea><br>"); }
          mysql_close ($dbverbindung)
          ?>
          <input type="submit" value="Beitrag ändern" name="Senden" size="20">

          Das 2.Script: Sollte normalerweise die DB aufmachen und die Daten vom 1.Script in die DB dann einfügen. So sieht jetzt mein quellcode vom 2.script aus:

          <?
          $host = "127.0.0.1";
          $user = "112";
          $password = "k21";
          $dbname = "112"
          $tabelle ="1212";

          $dbverbindung = mysql_connect ($host, $user, $password);
          $id = $_GET['id'] + 1;

          $query = "UPDATE $tabelle SET text= '$_POST['textnew']' WHERE id= '$ausgabe[id]'";
          $result = @mysql_query($query);

          mysql_close ($dbverbindung)

          ?>

          1. Hallo Christopher,

            $dbverbindung = mysql_connect ($host, $user, $password);
            $id = $_GET['id'] + 1;
            $query = "UPDATE $tabelle SET text= '$_POST['textnew']' WHERE id= '$ausgabe[id]'";

            zum dritten mal: was steht jetzt in $query drin?

            $result = @mysql_query($query);

            das kann ja garnicht funktionieren - du hast keine Datenbank ausgewählt. Und da du jegliche Fehlermeldung underdrückst, sag dir das Script das auch nicht. Ersetze mal diese Zeile durch:

            mysql_select_db($dbname,$dbverbindung) or die(mysql_error());
             $rs = mysql_query($query,$dbverbindung) or die(mysql_error());

            das sollte funktionieren (wenn nicht, poste mal welche Fehlermeldung du bekommst).

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|