Hi,
ich habe ein kleines test Gästebuch gemacht das auf eine MySql Datenbank zurück greift. Das Gästebuch funktioniert auch einwandfrei, man kann Sachen eintragen und dann anzeigen lassen.
Jetzt will ich natürlich eine Update Funktion einbauen, damit den Beitrag evtl. ändern kann, fals man sich verschrieben hat.
Ich hab das bisher folgendermaßen gelöst:
gaestebuch2.php
lässt alle Einträge mit ID´s anzeigen und man kann mit Hilfe eines Formulars die gewünschte ID des zu änderten Beitrags angeben.
Diese wird dann per Post in einer Variable ($id) an
eintrag2.php übergeben:
In eintrag2.php lass ich dann den Datensatz mit der übergebenen id($id) herausfiltern:
$res = mysql_query("select id, datum, name, eintrag
from meldung where id = '$id'
order by datum desc");
So weit so gut, damit ich natürlich weiss, was in dem Beitrag schon drinsteht, um ihn dann korrigieren zu können, les ich den aktuellen Datensatz aus($current_eintrag) und übergeb die Variable im textfeld aus:
while ($row = mysql_fetch_array($res)){
$current_id = htmlentities($row["id"]);
$current_name = htmlentities($row["name"]);
$current_datum = $row["datum"];
$current_eintrag = nl2br(htmlentities($row["eintrag"]));
echo "<table align=\"center\" border=\"0\" width=\"80%\">\n";
printf("<form action=\"../gaestebuch2.php\" method=\"POST\">
<p align=\"center\"><input type=text name=id
value=\"$current_id\"></p>\n");
printf("<h4>Name:</h4>
<br><p align=\"center\"><input type=text name=\"name\" value=\"$current_name\">
</p>\n");
printf("<h5 align=\"center\">News vom $current_datum</h5>\n");
printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
wrap=\"virtual\" name=\"eintrag\">$current_eintrag</textarea>\n");
printf("<br><p align=\"Center\">
<input type=\"submit\" name=\"submit\" value=\"edit\"></p></form>");
echo "</table>\n";
}
Bis hier hin funktioniert alles einwandfrei...
Mein Problem oder Denkfehler ist jetzt:
Da ich ja im Textfeld die Variable $current_eintrag schon als Value drin stehen hab, was ja auch an sich sinnvoll ist, weil man ja gleich wissen muss was im Beitrag drin steht, übergibt oder sendet er ja beim abschicken automatisch den bereits vorhandenen Beitrag was ja Quatsch ist. Wir könnte ich das anders lösen, das der Text, vom vorhandenen Beitrag, im Textfeld drin steht aber das was ich dann zusätzlich oder neuschreibt per GET dann übergibt und den Datensatz updatet?!
Hoffentlich hab ich das Problem gut beschrieben, bin um jede Antwort froh!
Danke...Gruß Thomas
Hier der Gesamte Code:
<?php
include("../verbindung.php");
?>
<?php
if ($submit){
// Der Submit - Button wurde gedrückt
// -> die Werte müssen überprüft
// und bei Gültigkeit in die DB eingefügt werden
// wir gehen von der Gültigkeit der Daten aus
$DatenOK = 1;
// es gab noch keine Fehlermeldung
$error = "";
if ($eintrag == ""){
// es wurde kein Komementar eingegeben
$DatenOK = 0;
$error .= "Text vergessen?";
$error .= " Sinn, oder?<br>\n";
}
if ($DatenOK){
mysql_query("update meldung set eintrag = '$current_eintrag' where id = '$current_id'");
echo mysql_error();
// Daten waren OK ->
header('http://members.tripod.de/thomasreichelt/gaestebuch2.php');
// und fertig...
die();
}
}
?>
<html>
<head>
<title>Neuer Eintrag in unser GB</title>
</head>
<body bgcolor="#E8E8FF">
<?php
$res = mysql_query("select id, datum, name, eintrag
from meldung where id = '$id'
order by datum desc");
echo mysql_error();
$id = htmlentities(addslashes(chop($id)));
printf("<h2>Beitrag Nummer: $id</h2>");
while ($row = mysql_fetch_array($res)){
$current_id = htmlentities($row["id"]);
$current_name = htmlentities($row["name"]);
$current_datum = $row["datum"];
$current_eintrag = nl2br(htmlentities($row["eintrag"]));
echo "<table align=\"center\" border=\"0\" width=\"80%\">\n";
printf("<form action=\"<?php echo $PHP_SELF; ?>\" method=\"GET\">
<p align=\"center\"><input type=text name=id
value=\"$current_id\"></p>\n");
printf("<h4>Name:</h4>
<br><p align=\"center\"><input type=text name=\"name\" value=\"$current_name\">
</p>\n");
printf("<h5 align=\"center\">News vom $current_datum</h5>\n");
printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
wrap=\"virtual\" name=\"eintrag\">$current_eintrag</textarea>\n");
printf("<br><p align=\"Center\">
<input type=\"submit\" name=\"submit\" value=\"edit\"></p></form>");
echo "</table>\n";
}
?>
<br>
<br>
<p align="Center"><a href="../gaestebuch2.php"><img src="../back_post_f2.gif" border="0"></a></p>
</body>
</html>
ich habe ein kleines test Gästebuch gemacht das auf eine MySql Datenbank zurück greift. Das Gästebuch funktioniert auch einwandfrei, man kann Sachen eintragen und dann anzeigen lassen.
Jetzt will ich natürlich eine Update Funktion einbauen, damit den Beitrag evtl. ändern kann, fals man sich verschrieben hat.
Ich hab das bisher folgendermaßen gelöst:
gaestebuch2.php
lässt alle Einträge mit ID´s anzeigen und man kann mit Hilfe eines Formulars die gewünschte ID des zu änderten Beitrags angeben.
Diese wird dann per Post in einer Variable ($id) an
eintrag2.php übergeben:
In eintrag2.php lass ich dann den Datensatz mit der übergebenen id($id) herausfiltern:
$res = mysql_query("select id, datum, name, eintrag
from meldung where id = '$id'
order by datum desc");
So weit so gut, damit ich natürlich weiss, was in dem Beitrag schon drinsteht, um ihn dann korrigieren zu können, les ich den aktuellen Datensatz aus($current_eintrag) und übergeb die Variable im textfeld aus:
while ($row = mysql_fetch_array($res)){
$current_id = htmlentities($row["id"]);
$current_name = htmlentities($row["name"]);
$current_datum = $row["datum"];
$current_eintrag = nl2br(htmlentities($row["eintrag"]));
echo "<table align=\"center\" border=\"0\" width=\"80%\">\n";
printf("<form action=\"../gaestebuch2.php\" method=\"POST\">
<p align=\"center\"><input type=text name=id
value=\"$current_id\"></p>\n");
printf("<h4>Name:</h4>
<br><p align=\"center\"><input type=text name=\"name\" value=\"$current_name\">
</p>\n");
printf("<h5 align=\"center\">News vom $current_datum</h5>\n");
printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
wrap=\"virtual\" name=\"eintrag\">$current_eintrag</textarea>\n");
printf("<br><p align=\"Center\">
<input type=\"submit\" name=\"submit\" value=\"edit\"></p></form>");
echo "</table>\n";
}
Bis hier hin funktioniert alles einwandfrei...
Mein Problem oder Denkfehler ist jetzt:
Da ich ja im Textfeld die Variable $current_eintrag schon als Value drin stehen hab, was ja auch an sich sinnvoll ist, weil man ja gleich wissen muss was im Beitrag drin steht, übergibt oder sendet er ja beim abschicken automatisch den bereits vorhandenen Beitrag was ja Quatsch ist. Wir könnte ich das anders lösen, das der Text, vom vorhandenen Beitrag, im Textfeld drin steht aber das was ich dann zusätzlich oder neuschreibt per GET dann übergibt und den Datensatz updatet?!
Hoffentlich hab ich das Problem gut beschrieben, bin um jede Antwort froh!
Danke...Gruß Thomas
Hier der Gesamte Code:
<?php
include("../verbindung.php");
?>
<?php
if ($submit){
// Der Submit - Button wurde gedrückt
// -> die Werte müssen überprüft
// und bei Gültigkeit in die DB eingefügt werden
// wir gehen von der Gültigkeit der Daten aus
$DatenOK = 1;
// es gab noch keine Fehlermeldung
$error = "";
if ($eintrag == ""){
// es wurde kein Komementar eingegeben
$DatenOK = 0;
$error .= "Text vergessen?";
$error .= " Sinn, oder?<br>\n";
}
if ($DatenOK){
mysql_query("update meldung set eintrag = '$current_eintrag' where id = '$current_id'");
echo mysql_error();
// Daten waren OK ->
header('http://members.tripod.de/thomasreichelt/gaestebuch2.php');
// und fertig...
die();
}
}
?>
<html>
<head>
<title>Neuer Eintrag in unser GB</title>
</head>
<body bgcolor="#E8E8FF">
<?php
$res = mysql_query("select id, datum, name, eintrag
from meldung where id = '$id'
order by datum desc");
echo mysql_error();
$id = htmlentities(addslashes(chop($id)));
printf("<h2>Beitrag Nummer: $id</h2>");
while ($row = mysql_fetch_array($res)){
$current_id = htmlentities($row["id"]);
$current_name = htmlentities($row["name"]);
$current_datum = $row["datum"];
$current_eintrag = nl2br(htmlentities($row["eintrag"]));
echo "<table align=\"center\" border=\"0\" width=\"80%\">\n";
printf("<form action=\"<?php echo $PHP_SELF; ?>\" method=\"GET\">
<p align=\"center\"><input type=text name=id
value=\"$current_id\"></p>\n");
printf("<h4>Name:</h4>
<br><p align=\"center\"><input type=text name=\"name\" value=\"$current_name\">
</p>\n");
printf("<h5 align=\"center\">News vom $current_datum</h5>\n");
printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
wrap=\"virtual\" name=\"eintrag\">$current_eintrag</textarea>\n");
printf("<br><p align=\"Center\">
<input type=\"submit\" name=\"submit\" value=\"edit\"></p></form>");
echo "</table>\n";
}
?>
<br>
<br>
<p align="Center"><a href="../gaestebuch2.php"><img src="../back_post_f2.gif" border="0"></a></p>
</body>
</html>
Kommentar