Befehl UPDATE geht irgendwie net!
Christopher WEBER
- php
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)
?>
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
Hello!
$textnew sollte von "ausgabe-detail.php" ausgeleseb werden
$ausgabe['id'] - wird von der DB ausgelesen!
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
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)
?>
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