MySQL Update bleibt aus...

-Ener-

Erfahrenes Mitglied
Hi ich habe 2 php`s die erste (news_edit.php) liest aus einer MySQL bestimmte Daten von der in der URL eingegebenen id aus und soll diese an die zweite php (news_save2.php) per formular welches mit den daten gefüttert ist ausgeben. Bei der news_save2.php kommt das die Daten gespeichert wurden, aber in der MySQL hat sich nix verändert =(

news_edit.php:

PHP:
<script language="JavaScript">
function check() {
	if (document.news_edit.Titel.value == "") {
		alert ("Bitte gib einen Titel ein!");
		return;
	}
 
if (document.news_edit.Text.value == "") {
		alert ("Bitte gib einen Text ein!");
		return;
	}
{
	document.news_edit.submit();
}
}
</script>
<?php
$host = "xxx";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "SELECT * from $tabelle WHERE id=$HTTP_GET_VARS[id]";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
 
while ($ausgabe = mysql_fetch_array ($result)){
echo "
<INPUT TYPE=hidden name=id value=$HTTP_GET_VARS[id]>
<INPUT TYPE=hidden name=date value=$ausgabe[Datum]>
<br>
<CENTER><form action=news_save2.php name=news_edit method=POST style=margin-top:0px;margin-right:0px;margin-left:0px;margin-bottom:0px>
<table border=0 cellspacing=3 cellpadding=0><tr><td><table cellspacing=0><tr><td bgcolor=7F6302><span style=font-family:Verdana;font-size=7pt;color:ffffff><b>T</b></span></td><td><span style=font-family:Verdana;font-size=7pt;color:ffffff>itel</span></td></tr></table></td>
<td><input type=text name=Titel style=height:17px;width:100px;background:B08F17;border:1px;border-style:solid;font-family:Verdana;font-size:7pt;color:7F6302 value=\"$ausgabe[Titel]\"></td></tr><tr><td valign=top><table cellspacing=0><tr><td bgcolor=7F6302 ><span style=font-family:Verdana;font-size=7pt;color:ffffff><b>T</b></span></td><td><span style=font-family:Verdana;font-size=7pt;color:ffffff>ext</span></td></tr></table></td><td><textarea name=Text rows=13 cols=65 style=background:B08F17;border:1px;border-style:solid;overflow:auto;font-family:Verdana;font-size:7pt;color:7F6302>$ausgabe[Text]</textarea></td></tr></table><table align=center cellspacing=0><tr><td bgcolor=7F6302><span style=font-family:Verdana;font-size=7pt;color:ffffff><b>s</b></span></td><td><span style=font-family:Verdana;font-size=7pt;color:ffffff><a href=javascript:check()>eichern</a></span></td></tr></table></form></CENTER><br><br><br>";
}
?>

news_save2.php:

PHP:
<?php
$host = "xxx";
$user = "xxx";
$password = "xxx";
$dbname = "xxx";
$tabelle ="xxx";
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "UPDATE $tabelle SET Datum='$date', Titel='$Titel', Text='$Text' WHERE id='$id'";
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
 
 
echo ("<br><table align=center cellspacing=0><tr><td bgcolor=7F6302><span style=font-family:Verdana;font-size=7pt;color:ffffff><b>D</b></span></td><td><span style=font-family:Verdana;font-size=7pt;color:ffffff>as Editieren dieser News war erfolgreich!</span></td></tr></table><br><br><br>");
} 
 
else {
echo ("<br><table align=center cellspacing=0><tr><td bgcolor=7F6302><span style=font-family:Verdana;font-size=7pt;color:ffffff><b>E</b></span></td><td><span style=font-family:Verdana;font-size=7pt;color:ffffff>s ist ein Fehler aufgetreten, bitte versuch es noch einmal!</span></td></tr></table><br><br><br>");
}
mysql_close ($dbverbindung);
?>

Wo könnte der Fehler liegen?
 
PHP:
echo '<INPUT TYPE="hidden" name="id" value="'.$_GET['id'].'">
<INPUT TYPE="hidden" name="date" value="'.$ausgabe['Datum'].'">';
Liegen die absichtlich außerhalb des Form Tags?
 
Ah ich idiot, hab die hidden felder nicht mit in der form gehabt, da kann ja auch keine id weitergegeben werden... +schäm+
 
Vorweg: Datenbanken werden abgefragt, nicht ausgelesen.

Zu deinem Anliegen: Probier mal Folgendes:
PHP:
<?php

	[…]
	$dbanfrage = "
		UPDATE
		        `".$tabelle."`
		  SET
		        `Datum` = '".mysql_real_escape_string($_POST['date'])."',
		        `Titel` = '".mysql_real_escape_string($_POST['Titel'])."',
		        `Text`  = '".mysql_real_escape_string($_POST['Text'])."'
		  WHERE
		        `id` = '".mysql_real_escape_string($_POST['id'])."'
		";
	[…]

?>
Übrigens solltest du es dir angewöhnen, HTML-Attributwerte in Anführungszeichen zu schreiben, denn daran kann es auch liegen, dass es nicht funktioniert.
 
hab den fehler ja selber gefunden, und meine attribute ohne " zu setzen hat auch so immer funktioniert, außerdem in nem echo gibt das nur php-fehler wenn ich es ohne \ reinsetz ;)
 
Dann solltest du dir möglicherweise einen saubereren Programmierstil aneignen.
PHP:
<?php

	echo '<element attribut="attributwert">'.$variable.'</element>';

?>
 
Es ist dennoch kein guter Stil. Außerdem hast du für (soweit ich das sehen kann) jeden Span-Tag das
gleiche style-Attribut. Das könnte man wunderbar zusammenfassen.

Abgesehen davon bitte ich dich, dich an die Netiquette, insbesondere Punkt 12 zu halten, danke.
 
Zurück