SQL: Variablen übertragen

ToKo

Grünschnabel
Edit: Mir fällt gerade auf, dass ich uU das falsche Unterforum gewählt habe und das im PHP Bereich besser aufgehoben wäre - bin mir aber nicht sicher. Sollte das der Fall sein, sorry und bitte verschieben, danke!

Servus,

ich bin jetzt seit gut 3 Tagen am rumprobieren und suchen aber komme einfach nicht weiter bzw. mittlerweile habe ich keine Nerven mehr, daher versuch' ichs mal hier!
Mein Ziel: Ein Newsscript im Rahmes eines CMS
Bisher fertig:
- news.php (alle News werden auf der Datenbank ausgelesen inkl. Titel und Datum, dann der ID nach geordnet angezeigt)
- Auf dieser Seite wird die ID aus der DB ausgelesen sodass ich die News über Edit editieren kann
- news_edit.php
- Das Aufrufen dieser Datei funktioniert dann ohne Probleme (bsp. news_edit?id=1), habe auch mehrere ID's durchprobiert, also da gibts keine Probleme.
- Der Newstitel, das Datum und der Inhalt werden dann in den Textfeldern ausgegeben (nachdem sie aus der DB ausgelesen wurden)

Mein Problem:
- Direktes Update über die news_edit.php funktioniert nicht.

Das ganze sollte dann folgendermaßen laufen: Nachdem ich die News editiert habe und auf Absenden klicke, sollte news_edit.php?id=1&go=send (oder dergleichen, je nachdem, was ihr für sinnvoll(er) haltet) die Daten in die DB übernehmen/updaten. Geht aber nicht.

So ich komme mal zu Ausschnitten des Codes (gekürzt):

news_edit.php, der go=send Bereich (Variable $id ist vorher schon bestimmt, wird auch später noch korrekt ausgegeben)
PHP:
$go=$HTTP_GET_VARS["go"];

if ($go=="send")
{
	$id=$HTTP_GET_VARS["id"];
	$send=$HTTP_POST_VARS["send"];

	$name=$HTTP_POST_VARS["name"];
	$content=$HTTP_POST_VARS["content"];
	$show=$HTTP_POST_VARS["show"];

$aendern = "UPDATE toko_news SET name = '$name', content = '$content', show = '$show' WHERE id=$id'";
$update = mysql_query($aendern) OR die(mysql_error());

}

news_edit.php, Ausgabe (hab den Part auch wieder verkürzt bzw. lediglich auf Eingabefelder minimiert, genauere Anpassung nehme ich erst vor, wenn die Funktionen ansich funktionieren):
PHP:
$abfrage = "SELECT * FROM toko_news WHERE id=$id";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
    $name=$row->name;
    $content=$row->content;
    $show=$row->show;
}

echo "<input type=\"text\" NAME=\"name\" VALUE =\"$name\" size=100 maxlength=255><br>";
echo "<input type=\"text\" NAME=\"content\" VALUE =\"$content\" size=100 maxlength=255><br>";
echo "<input type=\"text\" NAME=\"show\" VALUE =\"$show\" size=100 maxlength=3><br>";
echo "<input name=\"send\" type=\"submit\" value=\"Absenden\">";

Das ganze läuft als Formular, sodass am Ende die Adresse "news_edit.php?id=1&go=send" aufgerufen wird.

Zu guter letzt - der Fehler: 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 'show = WHERE id=1'' at line 1



Ist jetzt ziemlich viel Text und alles auf einmal, ich hoffe, dass irgendwer etwas damit anfangen kann, und mein Anliegen möglichst gescheit verstanden wurde. Wie gesagt es funktioniert ansich alles, nur das Eintragen am Ende machter nicht mehr mit.
Übrigens habe ich im Bereich "$aendern = "UPDATE toko_news SET name = '$name', content = '$content', show = '$show' WHERE id=$id'";" schon sämtliche mögliche Konstellationen probiert (mit/ohne Leerzeichen, mit/ohne ' etc.), allerdings kam der Fehler immer wieder.

So weit für den Moment, vielen Dank schonmal und liebe Grüße,
ToKo
 
Zuletzt bearbeitet:
ToKo hat gesagt.:
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 'show = WHERE id=1'' at line 1
wie es scheint, ist $show leer. und daraus resultiert ein ungültiger SQL-Query, nämlich:
UPDATE tabelle SET..., show = <?> WHERE ...
<?> hier müssten mindestens 2 Anführungsstriche bzw. Hochkomma stehen, um den Query valid zu machen
 
Hm jetzt bin ich irgendwie baff ;)

Also erstmal danke, funktioniert.

Hat scheinbar vor allem daran gelegen, dass show und content bisher leer waren, da ich nur mit name experimentiert hatte.
War mir aber nicht bekannt, dass alle Felder ausgefüllt sein müssen.

Vielen Dank nochmal, das ging doch schneller und besser als ich dachte - tjaja, manchmal liegts an den einfachsten Sachen....und daran probier ich 3 Tage rum :/ Naja
 
Zurück