Daten aus MYSQL in einem Formular auslesen geht, aber nicht das Speichern

fRagiLeMOD

Mitglied
Hallo, ich bin neu hier und habe gleich mal ein kleines Problem. Sitze schon ein paar Stunden davor, finde aber irgendwie keine Lösung.

Es geht darum, dass ich aus der MySQL Datenbank bereits gespeicherte Daten auslesen möchte um sie in einem Formular wieder zu bearbeiten und zu speichern. Das Auslesen klappt bestens, aber das Speichern einfach nicht. Hier der Code:

PHP:
	if($_REQUEST['edit'])
    {
    $result_edit = mysql_query("SELECT title, ntext, url, autor FROM $table_news WHERE id='".$_REQUEST['id']."'", $db_2);
	mysql_num_rows($result_edit);
	$ergebnis = mysql_fetch_object($result_edit);
			
	echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">",
    "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" name=\"editnews\">",
//        	"<input name=\"Passwort\" type=\"hidden\" value=\"".$_REQUEST['Passwort']."\">",
    "<input name=\"edit\" type=\"hidden\" value=\"1\">",
   "<tr>",
   "<td>Titel</td>",
   "<td><input name=\"title\" type=\"text\" value=\"".$ergebnis->title."\"></td>",
   "</tr>",
   "<tr>",
   "<td>Text (auch HTML)</td>",
   "<td><textarea cols=\"40\" name=\"ntext\" rows=\"5\">".$ergebnis->ntext."</textarea></td>",
   "</tr>",
   "<tr>",
   "<td>Quelle</td>",
   "<td><input name=\"url\" type=\"text\" value=\"".$ergebnis->url."\"></td>",
   "</tr>",
   "<tr>",
   "<td>Autor</td>",
   "<td><input name=\"autor\" type=\"text\" value=\"".$ergebnis->autor."\"></td>",
   "</tr>",
   "<tr>",
   "<td colspan=\"2\"><input name=\"editit\" type=\"submit\" value=\"Bearbeiten\"></td>",
   "</tr>",
   "</form>",
   "</table>";
			
		if($_REQUEST['editit'])
		{
			mysql_query("INSERT INTO $table_news (title, ntext, url, autor) WHERE id='".$_REQUEST['id']."' ORDER BY id='".$_REQUEST['id']."' VALUES ('".$_REQUEST['title']."', '".$_REQUEST['ntext']."', '".$_REQUEST['url']."', '".$_REQUEST['autor']."')", $db_2);
			echo "Die News wurden geändert!";
		}
		else {
			echo "Es trat ein Fehler beim Ändern der News auf!";
		}
	}
	else
	{
	echo "Keine News zum Editieren vorhanden";
	}

Hoffe, dass mir jemand helfen kann.

Gruß fRagiLeMOD
 
Hmmm, ja, gut. Habs mal geändert und auf zwei Dateien aufgeteilt. Leider geht's immer noch nicht.
Aber er braucht doch auch WHERE, damit er weiß, welche id er updaten soll!? (es handelt ich um ein News Script.

Datei 1 (anzeigen der News ID im Formular) !:
PHP:
.........
    
	if($_REQUEST['edit'])
    {
    $result_edit = mysql_query("SELECT title, ntext, url, autor FROM $table_news WHERE id='".$_REQUEST['id']."'", $db_2);
	mysql_num_rows($result_edit);
	$ergebnis = mysql_fetch_object($result_edit);	
	
	echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">",
    "<form action=\"sta_admin_news_bearb.php\" method=\"post\" name=\"editnews\">",
//        	"<input name=\"Passwort\" type=\"hidden\" value=\"".$_REQUEST['Passwort']."\">",
    "<input name=\"edit\" type=\"hidden\" value=\"1\">",
   "<tr>",
   "<td>Titel</td>",
   "<td><input name=\"title\" type=\"text\" value=\"".$ergebnis->title."\"></td>",
   "</tr>",
   "<tr>",
   "<td>Text (auch HTML)</td>",
   "<td><textarea cols=\"40\" name=\"ntext\" rows=\"5\">".$ergebnis->ntext."</textarea></td>",
   "</tr>",
   "<tr>",
   "<td>Quelle</td>",
   "<td><input name=\"url\" type=\"text\" value=\"".$ergebnis->url."\"></td>",
   "</tr>",
   "<tr>",
   "<td>Autor</td>",
   "<td><input name=\"autor\" type=\"text\" value=\"".$ergebnis->autor."\"></td>",
   "</tr>",
   "<tr>",
   "<td colspan=\"2\"><input name=\"editnews\" type=\"submit\" value=\"Bearbeiten\"></td>",
   "</tr>",
   "</form>",
   "</table>";
			
	} 
.......

Datei 2 (eintragen in DB, bzw. Tabellen updaten) nicht:
PHP:
.........
mysql_query("UPDATE $table_news  SET title='".$_REQUEST['title']."', ntext='".$_REQUEST['ntext']."', url='".$_REQUEST['url']."', autor='".$_REQUEST['autor']."' WHERE id='".$_REQUEST['id']."'", $db_2); 
........

Leider geht's immernoch nicht... :(
 
Probier mal Folgendes:
PHP:
$query = '
	INSERT INTO
	        `'.$table_news.'`
	  SET
	        `title` = "'.mysql_real_escape_string($_POST['title']).'",
	        `ntext` = "'.mysql_real_escape_string($_POST['ntext']).'",
	        `url`   = "'.mysql_real_escape_string($_POST['url']).'",
	        `autor` = "'.mysql_real_escape_string($_POST['autor']).'"
	   WHERE
	        `id` = '.abs(intval($_POST['id'])).'
	';
$result = mysql_query($query)
	or die(mysql_error());
 
Danke dir, aber auch dies geht nicht. Dann spuckt er das hier aus:
"You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ´id´ = 0' at line 8"

Wenn man es mit em UPDATE Befehl versucht, anstatt INSERT INTO, dann wird diese Nachricht angezeigt:
"You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '´sta_news´ SET ´title´ = "Test Test Test"

da war übrigens eine klammer zu viel bei:

PHP:
       WHERE
            ´id´ = '.abs(intval($_POST['id'])).'

Aber das ist ja nicht so schlimm ;)

Ich bin echt verzweifelt. Geht alles einfach nich.

EDIT:
Wenn ich alle `-Zeichen entferne, dann kommt keine Fehlermeldung, sonder eine leere weiße Seite. News wurden auch nicht aktualisiert. (mit UPDATE)
Hier mal die Struktur der Tabelle "sta_news", vll. hilft's euch ja weiter:

id int(11) Nein auto_increment
title varchar(80) Nein
ntext text Nein
url varchar(255) Ja NULL
autor varchar(50) Nein
created datetime Nein 0000-00-00 00:00:00
 
Zuletzt bearbeitet:
Ja, wie ich bereits schrieb, dann kommt das hier:
fRagiLeMOD hat gesagt.:
Danke dir, aber auch dies geht nicht. Dann spuckt er das hier aus:
"You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ´id´ = 0' at line 8"
 
Zurück