Problem bei Update eines Datensatzes

Der nette Mann

Erfahrenes Mitglied
Hi,

bin gerade dabei ein Adminmenü zu programmieren. Das anhängen neuer Datensätze geht auch soweit, aber das bearbeiten und abspeichern der Datensätze nicht.

Hier der Code

PHP:
<?
if($btn_edit){
	if(empty($headline)) {
		echo "<font color=#FF0000><div align=center>Bitte gib eine Überschrift ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($name)){
		echo "<font color=#FF0000><div align=center>Bitte gib Deinen Namen ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($email)) {
		echo "<font color=#FF0000><div align=center>Bitte gib Deinen eMail Adresse ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($text)) {
		echo "<font color=#FF0000><div align=center>Bitte gib einen Text ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else {
		$editsql = "UPDATE cfas_news SET headline='$headline', name='$name', email='$email', text='$text', datum='UNIX_TIMESTAMP()')";
		mysql_query($editsql);
	}
} else if($btn_add){
	if(empty($headline)) {
		echo "<font color=#FF0000><div align=center>Bitte gib eine Überschrift ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($name)){
		echo "<font color=#FF0000><div align=center>Bitte gib Deinen Namen ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($email)) {
		echo "<font color=#FF0000><div align=center>Bitte gib Deinen eMail Adresse ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else if(empty($text)) {
		echo "<font color=#FF0000><div align=center>Bitte gib einen Text ein...<br>Benutze die Zurückfunktion Deines Browsers um die Eingabe zu korrigieren</div></font><br>";
	} else {
		$addsql = "INSERT INTO cfas_news(id, headline, name, email, text, datum) VALUES (' ', '$headline', '$name', '$email', '$text', UNIX_TIMESTAMP() )";
		mysql_query($addsql);
	}
}
?>

Und der Formular code:

PHP:
<?
$sql = "SELECT * FROM cfas_news WHERE id = $id";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
	$news_id = $row[id];
	$news_headline = $row[headline];
	$news_name = $row[name];
	$news_email = $row[email];
	$news_text = $row[text];
	$news_datum = $row[datum];

?>
	
	
		<td align="center">
			<p>&nbsp;</p>
			<form method=post name=edit action=<?echo $SELF_PHP;?>?cat=news>
				<table width="80%" border="0" cellspacing="1" cellpadding="3">
					<tr> 
						<td width="30%" height="30"> <div align="right">&uuml;berschrift:</div></td>
						<td width="70%"> <input name="headline" type="text" id="headline" class="form" value="<? echo $news_headline ?>"></td>
					</tr>
					<tr> 
						<td width="30%"> <div align="right">name:</div></td>
						<td width="70%"> <input name="name" type="text" id="name" class="form" value="<? echo $news_name ?>"></td>
					</tr>
					<tr> 
						<td width="30%"> <div align="right">email:</div></td>
						<td width="70%"> <input name="email" type="text" id="email" class="form" value="<? echo $news_email ?>"></td>
					</tr>
					<tr> 
						<td width="30%"> <div align="right">text:</div></td>
						<td width="70%"> <textarea name="text" cols="35" rows="5" wrap="VIRTUAL" class="form" id="text"><? echo $news_text ?></textarea></td>
					</tr>
					<tr> 
						<td colspan="2">&nbsp;</td>
					</tr>
					<tr> 
						<td colspan="2" align="center">
							<input name="btn_edit" type="submit" value="speichern" class="button">
						</td>
					</tr>
				</table>
			</form>
			<p>&nbsp;</p>
		</td>
<?
}
?>

Danke für eure Hilfe

Der nette Mann
 
das sollte $PHP_SELF heißen.

[EDIT]
Außerdem würde ich beim UPDATE Query eine WHERE Clause eintragen. Sonst updatet er alle Datensätze. Es sei denn, es ist gewollt.
 
Kleine Frage:
Hast du eigentlich schon zur Datenbank connected?
Wenn nicht, so geht's:

PHP:
$datenbank = mysql_connect($serveradresse, $adminname, $adminpass);

und das mit der WHERE-Clause würd ich auf jeden Fall auch reinbringen... sonst haste nachher die ganze Datenbank mit einem Datensatz voll ;)

Bis denn
fischair
 
Zuletzt bearbeitet:
Hi,

Verbindung zur Datenbank besteht schon, ist ja nur ein eingebettetes Script ;)
Ok, das Where hab ich vergessen muss heißen "... WHERE id=$id"

ob $PHP_SELF oder $SELF_PHP macht leider auch keinen Unterschied, ich kann die Datensätze leider immer noch nicht editieren :(

Gruß

Der nette Mann
 
Nee,

registered globals = on. Daher muss mir irgendein blöder Fehler unterlaufen sein, wie gesagt, das hinzufügen mit dem leicht abgeänderten Code ja.

Trotzdem THX

Der nette Mann
 
Zurück