Hallo Gemeinde.
Hier mal eine Frage eines absoluten PHP/MySQL Greenhorns.
Ich sitze jetzt seit mehr als einer ganzen Nacht vor dem folgenden, für einen Kenner sicherlich mehr als lächerlichen Problem.
Für die Abschlussarbeit meines Studiums schraube ich an einer Website herum, die einen kleinen Newsbereich besitzt, der die News aus einer Datenbank liest. Dazu habe ich ein kleines und sehr(!) einfaches passwortgeschütztes Admin-Tool geschrieben, in dem ich News hinzufügen, löschen und editieren kann. Das auslesen der News auf der Seite klappt, das hinzufügen sowie das löschen im Adminbereich auch. Nur das editieren macht mir Schwierigkeiten.
Knackpunkt ist folgender:
Auf der Newsseite werden immer nur die letzten 6 News angezeigt.
Analog dazu habe ich auf der Edit-Seite 6 einzelene Formulare, in dessen Textareas ich diese letzten 6 News einlese.
Über den Submit-Button des jeweiligen Formulars übermittle ich per POST den editierten Text an ein Skript (newsedit.php), dass den Text zurück in die Datenbank braten soll.
Meine SQL-Tabelle hat lediglich 3 Felder (id, datum und newstxt) wobei das feld 'id' als primärschlüssel mit auto_increment dient.
An die letzten 6 Newstexte in der Datenbank komme ich über
$news1 = "SELECT newstxt FROM News ORDER BY ID DESC LIMIT 1";
$news2 = "SELECT newstxt FROM News ORDER BY ID DESC LIMIT 1,1";
usw.
Die in den Variablen gespeicherten Texte gebe ich anschließend in den jeweiligen Formularfelder aus:
<?php
$news = mysql_query($variable, $verbindung);
while ($row = mysql_fetch_object($news1)) {
echo $row -> newstxt;
}
Nachdem ich einen Text editiert habe, übergebe ich diesen in der $_POST Variable an mein Script.
Mein Problem ist jetzt, dass ich es nicht hinbekomme, den den Inhalt dieser Variablen zurück in die Datenbank zu schreiben.
Jedenfalls nicht so wie ich das will.
Wie komme ich beim updaten an die richtige ID?
Das Reinschreiben prinzipiell funktioniert, z.B. mit
if (isset($_POST['update1'])) {
$new = $_POST['update1'];
$edit = "UPDATE News SET newstxt = '$new' WHERE ID = '5';
}
$newsedit = mysql_query($edit, $verbindung);
Wie aber schreibe ich es wirklich an die Stelle, an die der editierte Text gehört, das heisst, in das Feld mit der ID aus der der alte Text stammt?
Sorry, dass ich hier so einen Roman verfasst habe. Ich hoffe, das den hier jemand bis zum Ende liest, dieser jemand mein Problem verstanden hat und Lust hat, mir zu helfen!
By the way, ich bin mir sicher, dass meine Herangehensweise für einen Programmierer wahrscheinlich ziemlich umständlich oder dilettantisch aussieht... aber ich bin eben keiner
Vielen Dank im Voraus!