mySQL Update-Abfrage Problem

m4rtin

Grünschnabel
Hola!

Ich habe mir folgenden Code gebastelt um Einträge in die DB zu editieren. Wenn ich neue Daten ins Forumlar eingebe, klappt auch alles wunderbar. Nur wenn ich keine neue Daten eingeben oder einfach nur das Fenster schliesse, sind beim erneuten Aufrufen alle Daten verschwunden. Ich muss also immer etwas editieren, weil sonst alles verschwunden ist. Was ist am Code falsch? :help:

PHP:
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
	<tr>
		<td bgcolor="#e7e7e7" align="center" colspan="2">
		<b>News:</b>
		</td>
	</tr>
	<?php

	$id = $_GET['id'];
	$query = mysql_query("SELECT * FROM news WHERE id = '$id'") or die(mysql_error());
	while($row = mysql_fetch_array($query)) {
		echo '[...]
		<td bgcolor="#e7e7e7" align="center" colspan="2">
		<input type="submit" name="submit" value="News editieren" class="button">
		</td>
	</tr>';
	}

$query = mysql_query("UPDATE news SET title='$title', author='$author', date='$date', time='$time', txt='$txt' WHERE id='$id'");
                    if ($query) {
                        print "<h1>News editiert!</h1>\n";
                    } else {
                       print "<h1>Fehler: News konnte nicht editiert werden!</h1>\n";
                    }
?>
mfg martin
 
Du solltest es so lösen, dass kontrolliert wird, ob das Formular, in dem die Daten geändert werden können, abgeschickt wurden. z.B. kontrollieren ob ein Feld gesetzt ist. Und nur unter der Bedinung, dass dies so ist, solltest du den UPDATE-Query ausführen lassen! sonst ist es klar, das dieser bei jedem Aufruf der Seite getätigt wird. Aber es gibt ja noch kein Daten für die jeweiligen Variablen!
 

Neue Beiträge

Zurück