Schleifenausgabe Speichern

Every_b

Mitglied
Hallo Leute!

Ich habe folgendes Problem und hoffe dass mir jemand dabei helfen kann, ich komme einfach nicht auf einen Lösungsweg.

Zu Beginn:
Ich habe in einer Datenbank ein Kinoprogramm gespeichert, mit Namen, Spieldauer, Altersfreigabe etc.
Ich rufe das Programm über eine while schleife in ein Formular ab.
Also habe ich nun Eingabefelder mit den Inhalten (Namen, Spieldauer, Altersfreigabe etc.)

Ich möchte nun, dass wenn man auf den "Speichern" Button klickt, dass die Angaben im Formular übernommen werden, jedoch gelingt mir dies nicht so recht.

Beispiel:

http://www.cine-royal.de/login/index2.php
Nick: test Pass: test

Es sind 2 Einträge in der DB, die aufgelistet werden, nun möchte ich wenn ich den ersten Eintrag editiere, mit dem Click auf Speichern, diese Eingaben auch gerne in der DB gespeichert haben.
Zur Zeit ist es so, dass die Eingaben des 2. Eintrags in den ersten gespeichert werden.

Zum Verständnis hier der Code:

HTML:
$inhalt = "select * from programm";
$result = mysql_query($inhalt);
while ($programm = mysql_fetch_array($result))
{

?>

<form method="post" name="aktualisieren" action="<? $PHP_SELF; ?>">

<input type="hidden" name="user" value="test">
<input type="hidden" name="password" value="test">
// Der Login^^


Filmtitel: <input type="text" name="filmname" value="<? echo $programm[1]; ?>"><p>
Genre: <input type="text" name="genre" value="<? echo $programm[2]; ?>"><p>
Altersfreigabe: <input type="text" name="alter" value="<? echo $programm[3]; ?>"><p>
Sendezeiten: <input type="text" name="zeiten" value="<? echo $programm[4]; ?>"><p>
Release: <input type="text" name="release" value="<? echo $programm[5]; ?>"><p>
Spieldauer: <input type="text" name="dauer" value="<? echo $programm[6]; ?>"><p>
Webseite: <input type="text" name="webseite" value="<? echo $programm[7]; ?>"><p>
<p>
<input type="submit" name="speichern" value="Speichern">
<p>&nbsp;</p>
<?
}

?>

(falls es hilft: auf $programm[0] ist die jeweilige ID gespeichert.)

Hier der Anfang der PHP:

PHP:
$inhalt = "select * from programm";
$result = mysql_query($inhalt);
$programm = mysql_fetch_array($result);


if ($speichern == "Speichern") {
MYSQL_QUERY( "UPDATE `programm` SET `titel` = '$filmname' WHERE `ID` ='$programm[0]'") OR die("<hr>Fehler bei Update : ".mysql_errno()."->".mysql_error()."<hr>");
MYSQL_QUERY( "UPDATE `programm` SET `genre` = '$genre' WHERE `ID` =$programm[0]");
MYSQL_QUERY( "UPDATE `programm` SET `age` = '$alter' WHERE `ID` =$programm[0]");
MYSQL_QUERY( "UPDATE `programm` SET `zeit` = '$zeiten' WHERE `ID` =$programm[0]");
MYSQL_QUERY( "UPDATE `programm` SET `release` = '$release' WHERE `ID` =$programm[0]");
MYSQL_QUERY( "UPDATE `programm` SET `dauer` = '$dauer' WHERE `ID` =$programm[0]");
MYSQL_QUERY( "UPDATE `programm` SET `webseite` = '$webseite' WHERE `ID` =$programm[0]");
}

Meine Vermutung:
Nachdem die Schleife durchgelaufen ist, ist die ID ($programm[0]) IMMER 2, also wird auch alles aus 2 genommen.
Aber wie umgehe ich das? Wie schaffe ich es, dass jeder Eintrag als eigener da steht, und auch nur das verändert was in ihr bearbeitet wird.

Es klingt alles ein wenig kompliziert, aber ich hoffe ihr konntet mir folgen, ich finde einfach keinen Lösungsansatz.

Vielen Dank im vorraus :)
Dariy
 
Zuletzt bearbeitet:
Du speicherst die sendest die zu ändernde ID mit den Formularen mit

HTML:
$inhalt = "select * from programm";
$result = mysql_query($inhalt);
while ($programm = mysql_fetch_array($result))
{

?>

<form method="post" name="aktualisieren" action="<? $PHP_SELF; ?>">

<input type="hidden" name="user" value="test">
<input type="hidden" name="password" value="test">

<input type="hidden" name="id" value="<? echo $programm['ID']; ?>">
// Der Login^^


Filmtitel: <input type="text" name="filmname" value="<? echo $programm[1]; ?>"><p>
Genre: <input type="text" name="genre" value="<? echo $programm[2]; ?>"><p>
Altersfreigabe: <input type="text" name="alter" value="<? echo $programm[3]; ?>"><p>
Sendezeiten: <input type="text" name="zeiten" value="<? echo $programm[4]; ?>"><p>
Release: <input type="text" name="release" value="<? echo $programm[5]; ?>"><p>
Spieldauer: <input type="text" name="dauer" value="<? echo $programm[6]; ?>"><p>
Webseite: <input type="text" name="webseite" value="<? echo $programm[7]; ?>"><p>
<p>
<input type="submit" name="speichern" value="Speichern">
<p>&nbsp;</p>
<?
}

?>

und im PHP

PHP:
$inhalt = "select * from programm";
$result = mysql_query($inhalt);
$programm = mysql_fetch_array($result);


if ($speichern == "Speichern") {
MYSQL_QUERY( "UPDATE `programm` SET `titel` = '$filmname', `genre` = '$genre' , `age` = '$alter' , `zeit` = '$zeiten' , `release` = '$release' , `dauer` = '$dauer' , `webseite` = '$webseite' WHERE `ID` =$_POST[id]");
}
 
Danke engelb!
Schonmal ein großer Schritt richtung Lösung würde ich sagen :)

Aber noch nicht ganz..
Wir sind jetzt soweit, dass wir den 2. Eintrag ohne Probleme ändern können, das funktioniert.
Den ersten allerdings noch nicht, er "resettet" sich immer wieder.

Ich vermute immer noch, dass es daran liegt, dass nach dem Schleifenende, die $programm['ID'] == 2 ist, und er deshalb auch nur die 2. verändert.
Wie man das aber verhindert, bzw. löst.. dazu fehlt mir irgendwas ^^

..gibts noch weitere Ideen? :-s
 
Es wird mit sicherheit daran liegen das du die <form> tags nicht wieder schließt bevor du ein neues aufmachst. Das noch abändern.

so zb:

HTML:
<input type="submit" name="speichern" value="Speichern">
<p>&nbsp;</p>
</form>
 
Hey engelb!

Danke für den Hinweis, habe die Forms geschlossen, jedoch hat sich nun nur geändert, dass die erste Form geändert wird, die zweite bleibt nun unangetastet.

..als du es geschrieben hast ging mir ein "Logisch" lichtlein auf, aber irgendwo stimmt noch etwas nicht :-/

Ich hoffe es hat noch jemand Ideen.. ich lese mich in der Zeit durch ein paar Seiten die ähnliche Themen bearbeiten.

Danke nochmal :)
Dariy
 
Willst du denn Alle Formulare auf einmal ändern? Dann musst du die Namen davon noch ein wenig umbauen.

Weil jedes einzeln für sich ist so wie es aktuell ist änderbar.
 
Engelb :) Ich verneige mich und danke dir vielmals.

Habe aus "urinstinkt" ^^ immer auf den oberen "Speichern" Button geclickt, du hast natürlich recht :) wenn ich den richtigen Button anklicke funktioniert es auch richtig.

Bin glücklich ^^ vielen Dank nochmals ;)

Dariy
 
Zurück