bei den ganzen Tutorials die es hier gibt habe ich bisher noch nicht gesehen wie es möglich ist bei zb: einem Gästebuch die einträge auch wieder zu Löschen oder zu Editieren.
Deshalb möchte ich euch hier zeigen wie einfach das ist.
Da ich selber lange nach dieser Lösung gesucht habe denke ich das ich einigen Anfängern damit helfen kann...
also, fangen wir an!
zu aller erst müssen wir natürlich die Datenbank Tabelle mit den entsprechenden Zeilen erstellen.
Das sieht wie folgt aus...
PHP-Code:
CREATE TABLE `guestbook` (
`ID` int(8) unsigned NOT NULL auto_increment,
`Name` varchar(15) NOT NULL default '',
`Titel` varchar(60) NOT NULL default '',
`Inhalt` text NOT NULL default '',
PRIMARY KEY(ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
gbadd.php
PHP-Code:
<form method="post" action="http://www.tutorials.de/gbaction.php">
<table border="0" cellpadding="0" cellspacing="0" width="451">
<tr>
<td width="105">Name</td>
<td><input type="text" name="Name" size="24"></td>
</tr>
<tr>
<td width="105">Titel</td>
<td><input type="text" name="Titel" size="24"></td>
</tr>
<tr>
<td width="105">Text</td>
<td><textarea name="Inhalt" cols="40" rows="4"></textarea></td>
</tr>
</table>
<input type="submit" name="submitButtonName"><input type="reset">
Die Aktions PHP sieht so aus:
gbaction.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$Name= $_POST['Name'];
$Titel= $_POST['Titel'];
$Inhalt= $_POST['Inhalt'];
$sql = "INSERT guestbook (Name,Titel,Inhalt) VALUES ('$Name','$Titel','$Inhalt')";
if (("" == $Name) OR (""== $Titel) OR(""== $Inhalt)) {
echo "Fehler: Eintrag unvollständig.";
} else {
echo "Ihr Eintrag wurde hinzugefügt";
}
echo '<br/><a href="http://www.tutorials.de/gbook.php">zurück zum Guestbook</a>.';
$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());
?>
Unten befindet sich noch ein Link der die ausgabe PHP Datei ansteuert. Mit der wir nun weiter machen.
Vorab muss ich sagen das wir 2 versionen von ausgaben brauchen. Eine Version wird für die Besucher der Homepage sein. Die andere Version ist nur für und (Webmaster) in der wir einträge Editieren und Löschen können.
(natürlich könnte man dies auch alles in einer Datei lösen, dafür werden aber Sessions mit User Login und User Rechte benötigt. Wer dazu fragen hat kann sich bei mir melden PM oder Mail)
So, machen wir weiter.
Die einfache User Ausgabe.
gbook.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$sql = "SELECT * FROM guestbook ORDER
BY id DESC";
$ausgabe=mysql_query($sql);
?>
<center><b>Guestbook</b><br>
<?php echo '<br><br><a href="http://www.tutorials.de/gbookadd">Eintrag Schreiben</a><br><br><br>'; ?><br></center>
<?php
while ($Guestbook = mysql_fetch_object ($ausgabe))
{
?>
<center>
<table border="0" cellpadding="0" cellspacing="1" width="451">
<tr>
<td width="203"><b><?php echo($Guestbook->Titel); ?></b></td>
<td>
<div align="right">
von <b><?php echo($Guestbook->Name); ?></b></div>
</td>
</tr>
<tr>
<td colspan="2"><?php echo($Guestbook->Inhalt); ?></td>
</tr>
<br>
<br>
</table>
</center>
<?php }
?>
Mit Hilfe einer While Schleife geben wir die einzelnen Inhalte nacheinander in einer HTML Tabelle aus, und zwar mit diesem echo befehl:
PHP-Code:
<?php echo($Guestbook->Inhalt); ?>
$Guestbook ist der mysql_fetch_object Befehl womit der SQL Query angesprochen wird. Also unsere "guestbook" Tabelle mit allen inhalten.
->Inhalt Pfeil Operator mit dem jeweiligen gewünschten Inhalt... wie in der Datei gezeigt beliebig wähl bar (Titel, Name etc).
Machen wir weiter mit Zweiten Version die für unsere Webmaster ist.
Aus diesem Grund nennen wir sie einfach liebevoll gbadmin.php.
gbadmin.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$sql = "SELECT * FROM guestbook ORDER
BY id DESC";
$ausgabe=mysql_query($sql);
?><?php
while ($Guestbook = mysql_fetch_object ($ausgabe))
{
?>
<center>
<p>
<form method="get" action="http://www.tutorials.de/gbookedit">
<table border="0" cellpadding="0" cellspacing="1" width="451">
<tr>
<td width="203"><b><?php echo($Guestbook->Titel); ?></b></td>
<td>
<div align="right">
von <b><?php echo($Guestbook->Name); ?></b></div>
</td>
</tr>
<tr>
<td colspan="2"><?php echo($Guestbook->Inhalt); ?></td>
<tr>
<td width="69">
<div align="left">
<?php print "<a href=\"gbookedit.php&id=$Guestbook->ID\">Editieren</a>."; ?></div>
</td>
<td>
<div align="right">
<?php print "<a href=\"gbookdelete.php&id=$Guestbook->ID\">Löschen</a>."; ?></div>
</td>
</tr>
<br>
</table>
</p>
</center>
<p><?php }
?>
</form>
Diese geben einen Link aus der auf die gbookedit oder gbookdelete Datei verweist mit der jeweiligen Eintrags ID die in der Datenbank vorhanden ist.
Das heißt: wir rufen bei dem gewünschten Eintrag zb: die gbookedit.php auf und übergeben ihr mit hilfe von GET die gewünschte GB Eintrags ID mit deren Hilfe wir der Datenbank sagen welchen genauen Eintrag wir in diesem Fall Editieren/Ändern wollen.
Das sieht in der Datei wie folgt aus:
gbookedit.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$sql = "SELECT * FROM guestbook ORDER
BY Name DESC";
////////////////////////////////////////
///// Hier nehmen wir die ID entgegen///
////////////////////////////////////////
$id = $_GET['id'];
$sql = "SELECT * FROM guestbook WHERE ID ='$id'";
$ausgabe = mysql_query($sql);
$data = mysql_fetch_array($ausgabe);
?>
<form action="http://www.tutorials.de/gbeditaction.php" method="post">
<input type="text" name="Titel" size="24" value="<?php echo $data['Titel']; ?>"><br>
<textarea cols="40" rows="5" name="Inhalt">
<?php echo $data['Inhalt']; ?>
</textarea><br>
<input type="submit" value="Senden">
<input type="hidden" name="id" value="<?php echo $data['ID'] ?>" />
</form>
<?php
$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());
?>
Desweiteren sehen wir ein Formular das diese Datenbank Inhalte ausgibt und auch Ändern lässt.
Nach dem beliebigen Ändern werden wir wieder mit hilfe von POST die daten (Auch die ID die in diesem Fall versteckt (HIDDEN) ist) an die gbeditaction.php übergeben.
Die wie folgt aussieht
gbeditaction.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$sql = "SELECT * FROM guestbook ORDER
BY Name DESC";
$inhalt = $_POST["Inhalt"];
$id = $_POST["id"];
$titel = $_POST['Titel'];
$sql="UPDATE guestbook SET Inhalt = '".$inhalt."', Titel = '".$titel."' WHERE ID = ".$id;
echo '<br/><a href="http://www.tutorials.de/gbadmin.php">zurück</a>.';
$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());
?>
Nun die Delete Datei
gbdelete.php
PHP-Code:
<?php
error_reporting(E_ALL);
$db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db(MYSQL_DATABASE);
$sql = "SELECT * FROM guestbook ORDER
BY Name DESC";
$id = $_GET["id"];
echo $_GET['id'];
$sql = "DELETE FROM `guestbook` WHERE `guestbook`.`ID` =$id LIMIT 1";
echo '<br/><a href="http://www.tutorials.de/gbadmin.php">zurück</a>.';
$result = mysql_query($sql) OR
die("Query: <pre>".$sql."</pre>\n".
"Antwoertchen: ".mysql_error());
?>
Hier habe ich die ID nochmal mit Echo ausgeben lassen damit ihr nachvoll zeihen könnt welcher Eintrag grade gelöscht wurde. (Die ID seht ihr aber bei GET auch immer oben in der Adresszeile)
Damit sind alle unsere Wünsche erfüllt. Es lassen sich Einträge hinzufügen (gbadd.php) Editieren und Löschen (gbadmin.php).
Ich Hoffe das es euch etwas Hilft da etwas schneller hinter zu blicken. Ich bin selber leider auch erst Anfänger aber ganz so verkehrt wird es nicht sein

Meine Rechtschreib fehler müsst ihr entschuldigen. Sollte etwas in den Datein oder meinen Erklärungen nicht stimmen bitte ich euch mich zu verbessern. Möglicherweise gibt es auch einfachere oder sicherere Lösungen für solche Fälle, leider ist mir nur diese hier bekannt.
Doch genug geschrieben.
Viel Spaß beim Probieren, nur dadurch lernt man es

Noch einen Wunderschönen Tag
Einfach PM bei Fragen!




Bereiche
Kategorien
Forum - Programming





tutorials.de-Systemmitteilung