[PHP]News-System

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Ich hab hier ein Problem mit meinem News-System.
Neue News erstellen funktioniert. Ältere News löschen funktioniert auch.
Allerdings habe ich Probleme, wenn ich ältere News bearbeiten möchte.

(Da der Quellcode ziemlich lang ist werde ich nur die relevanten Zeilen hier hineinschreiben.)
Also, jeder News werden folgende Buttons vorangestellt:
PHP:
[ <a href='$_SERVER[PHP_SELF]?update=$datensatz[id]'>News bearbeiten</a> ]
[ <a href='$_SERVER[PHP_SELF]?delete=$datensatz[id]'>News löschen</a> ]
Nun kommt der "Auswertungsteil":
PHP:
if (isset($_GET['update'])) {

	$sql = "SELECT * FROM news WHERE id='$_GET[update]'";
	$abfrage = mysql_query($sql);
	$datensatz = mysql_fetch_assoc($abfrage);
   
   	echo <<<FORMULAR
	<p>
	Hallo <b>{$_SESSION['user']}</b>! Herzlich Willkommen beim ValentinTools News-System!<br></br>
	Hier hast du die Möglichkeit News zu bearbeiten.
	</p>
	<form action="{$_SERVER['PHP_SELF']}" method="post">
	<input name="id" type="hidden" value="{$_GET['update']}"></input>
	<p>
	Titel<br></br>
	<input name="titel" type="text" size="75" maxlength="90" value="{$datensatz['headline']}"></input>
	</p>
	<p>
	News <small>(HTML-Code erlaubt)</small><br></br>
	<textarea name="news" cols="75" rows="15">{$datensatz['news']}</textarea>
	</p> 
	<p>
	<input name="update" type="submit" value="Speichern"></input>
	</p>
	</form>
FORMULAR;

}
else {

	echo <<<FORMULAR
	<p>
	Hallo <b>{$_SESSION['user']}</b>! Herzlich Willkommen beim ValentinTools News-System!<br></br>
	Hier hast du die Möglichkeit News einzutragen.
	</p>
	<form action="{$_SERVER['PHP_SELF']}" method="post">
	<p>
	Titel<br></br>
	<input name="titel" type="text" size="75" maxlength="90"></input>
	</p>
	<p>
	News <small>(HTML-Code erlaubt)</small><br></br>
	<textarea name="news" cols="75" rows="15"></textarea>
	</p> 
	<p>
	<input name="insert" type="submit" value="Eintragen"></input>
	</p>
	</form>
FORMULAR;
}

if (isset($_POST['insert'])) {
	$datum = date('d.m.Y, H:i') . " Uhr";
	$sql = "INSERT INTO news VALUES ('', '$datum', '$_SESSION[user]', '$_POST[titel]', '$_POST[news]')";
	mysql_query($sql);
}

if (isset($_POST['update'])) {		
	$sql = "UPDATE news SET headline=$_POST[titel], news=$_POST[news] WHERE id=$_POST[id]";
	mysql_query($sql);
}

if (isset($_GET['delete'])) {
	$sql = "DELETE FROM news WHERE id='$_GET[delete]'";
	mysql_query($sql);
}
Wenn ich nun auf den Button
PHP:
[ <a href='$_SERVER[PHP_SELF]?update=$datensatz[id]'>News bearbeiten</a> ]
klicke wird der gewünschte Datensatz korrekt ausgelesen und in das Formular geschrieben.
Nun ändere ich den Titel oder die News und drücke auf den submit button. Nun wird die Änderung allerdings nicht in MySQL gespeichert! Der Datensatz wird einfach nicht "geupdatet"! Wieso nicht?
Wo ist der Fehler in meinem Quellcode?
Ich sitze da schon ewig dran und würde mich freuen, wenn mir einer von euch helfen könnte.

MfG
Valentin
 
Kannst ja mal versuchen, das WHERE statement vor das SET statement in der UPDATE syntax zu setzen..

edit: hm okay hab nochmal in der Referenz nachgeschaut das stimmt wohl doch nicht^^
edit2: ACH! ich Depp! Ganz einfach: du hast vergessen, deine Variable in Anführungsstriche zu setzen :-) den Fehler hatte ich bei meinem Newssystem auch einmal nicht gefunden

MfG J!0X
 
Zuletzt bearbeitet:
Nee... hm, also es geht jetzt, ich habe mal Anführungszeichen ma anders gesetzt:
PHP:
$sql = "UPDATE news SET headline = '$_POST[titel]', news = '$_POST[news]' WHERE id = '$_POST[id]'";
Trotzdem vielen Dank für die Antwort (und zum durchschaun meines scripts ;) )
 
Zurück
Oben