JackRabbit156
Grünschnabel
Hallo zusammen,
ich will einen Eintrag aus einer Datenbank auslesen und dann in einer Textbox in einem Formular ausgeben.
Wenn der User eine Änderung gemacht hat und das Formular abschickt, soll diese in die Datenbank geschrieben werden und unter vorgaenge gesichert werden, wo eine Änderung gemacht wurde.
Leider funktioniert mein Vergleich nicht richtig, da auch ohne Änderung ein Datenbankeintrag gemacht wird. Einfach nur Formular laden und wieder abschicken.
Ich hab den Code stark gekürzt, da dazwischen viele Codezeilen sind, die nichts mit dem Problem zu tun haben.
Kann mir jemand sagen, ob ich da irgendwo einen Denkfehler begangen hab?
Ich hab mir schon überlegt, ob ich anstatt einem if-Vergleich eine Datanbankabfrage einbaue, im Sinne von:
und dann überprüfe, ob es Ergebnisse gab, aber ich weiß nicht, ob mir das wirklich weiterhilft. Vor allem, da ich für jedes Formularfeld wieder eine Datenbankabfrage mehr bräuchte...
edit:
Könnte das ganze am Zeichensatz liegen?
Die Ausgabe-Datei verwendet den charset ISO-8859-1, in der Datenbank ist die Kollation latin1_german2_ci
ich will einen Eintrag aus einer Datenbank auslesen und dann in einer Textbox in einem Formular ausgeben.
Wenn der User eine Änderung gemacht hat und das Formular abschickt, soll diese in die Datenbank geschrieben werden und unter vorgaenge gesichert werden, wo eine Änderung gemacht wurde.
Leider funktioniert mein Vergleich nicht richtig, da auch ohne Änderung ein Datenbankeintrag gemacht wird. Einfach nur Formular laden und wieder abschicken.
PHP:
<?php
...
if ($_GET['id']){
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM dvds WHERE id=".$id."");
...
for($x=0; $x < mysql_affected_rows(); $x++){
$beschreibung = mysql_result($result, $x, 'beschreibung');
};
}
elseif ($_POST){
...
$result = mysql_query("SELECT * FROM dvds WHERE id = ".$_POST["aktid"]);
...
$aenderung = "";
if (mysql_result($result, 0, 'beschreibung') != $_POST["Beschreibung"]) {
$aenderung .= "Beschreibung";
}
...
if ($aenderung != "") {
$result = mysql_query("UPDATE `dvds` SET `beschreibung` = '".$_POST["Beschreibung"]."' WHERE `id` = ".$_POST["aktid"]." LIMIT 1 ;");
...
$result2 = mysql_query("INSERT INTO `vorgaenge` ( `ID` , `ID_Film` , `art`, `von`, `Aenderung`) VALUES ('', '".$_POST["aktid"]."', '3', '".time()."', '".$aenderung."');");
...
}
...
header("Location: ".$config['url'].$config['dir']."/change.php?id=".$_POST["id"]);
...
?>
...
<td align="left" valign="top"><textarea name="Beschreibung" rows="25" cols="120"><? echo $beschreibung ?></textarea></td>
...
Kann mir jemand sagen, ob ich da irgendwo einen Denkfehler begangen hab?
Ich hab mir schon überlegt, ob ich anstatt einem if-Vergleich eine Datanbankabfrage einbaue, im Sinne von:
PHP:
"SELECT * FROM dvds WHERE`beschreibung` = '".$_POST["Beschreibung"]
edit:
Könnte das ganze am Zeichensatz liegen?
Die Ausgabe-Datei verwendet den charset ISO-8859-1, in der Datenbank ist die Kollation latin1_german2_ci
Zuletzt bearbeitet: