Edit und Del bei einem Guestbook

theLMF

Mitglied
Also ich hab das Forum durchsucht und nxi gefunden - ehrlich...
also haut mir bitte nicht den´kopf ab wenn ich diese Frage hier stelle:
Ich hab ein Guestbook (von php4-forum.de) in ein Newspostscript (ok es geht villeicht besser) umgewandelt
mit der seite new.php mach ich die news - auf der seite index.php les ich sieh aus
jetzt wollt ich wissen, wie ich einen Button (oder Link) zum Editieren (Edit) und Löschen (Del) für die new.php erstellen kann (Script)
thx
 
wie (bzw. wo) werden denn die Einträge gespeichert? MySQL? Textdateien?

beschreib mal bitte etwas genauer ;)

Gruß
Dunsti
 
ok

ok!
Das ganze läuft über eine MySQL-Datenbank
Hier ist noch der Script (natürlich hab ich den bei mir editiert)

<?php
// Ausgabe aller Einträge aus dem Gästebuch
} else {

$query = "select * from $table order by datum desc";
$result = mysql_query($query);

if (mysql_num_rows($result)) {
while($row=mysql_fetch_array($result)) {

$name = $row['name'];
$open = $row['open'];
$email = $row['email'];
$hp = $row['hp'];
$inhalt = $row['inhalt'];
$kommentar = $row['kommentar'];
$datum = date("d.m.y",$row['datum']);

echo "Eintrag vom: ".$datum."<br>";
echo "User: ".$name;
if($open && $email) echo " (".$email.")";
if($hp) echo " (".$hp.")";
echo "<br>Meinung: ".$inhalt;
if($kommentar) echo "Unser Kommentar: ".$kommentar."<br>";
echo "<hr>";
flush();

}
} else {
echo "Bis jetzt gab es keine Einträge";
}
}

echo "<p><a href='".$PHP_SELF."?action=neu'>Neuer Eintrag</a>";
echo " - <a href='".$PHP_SELF."'>Zum Gästebuch</a>";
echo "<html>";

?>

In dieser Datei (bei mir heißt sie new.php) will ich dieses Del/Edit einfügen...

Wen ihr noch was wissen wollt, lassts mich wissen :-)
 
ok, in MySQL is das ganz einfach:

zum Löschen nimmst Du "DELETE * FROM tabelle" ... aber Achtung !!!!!!!! dieser Befehl löscht die komplette Tabelle. Du musst also noch mit WHERE angeben, welchen Datensatz Du löschen willst.
Aber auch hier gibt es noch ein kleines Problem. Du musst den Datensatz, den Du löschen willst genau angeben. Dazu erweiterst Du am besten die Tabelle mit einem auto_increment-Feld, und setzt dieses auf UNIQUE (also Eindeutig). Dann heisst der komplette SQL-Befehl: "DELETE * FROM tabelle WHERE id=$id"

ich hoffe, das war jetzt einigermassen verständlich. ;)

Zum Ändern eines Datensatzes gibts den Befehl "UPDATE tabelle SET feld1='$feld1', feld2='$feld2' ..... "

Gruß
Dunsti
 
aha. und wie würde das dann bei einem gästebuch mit dat datei gehen?

PS: wie kann ich mysql auf meinem comp mit nem omni server machen?
 
hmm

und was gebe ich für "$id" ein???
tschul, dass ich das Frage aber ich steh grad echt auf dem Schlauch...

ach ja, ich habs so gmeacht (verbessere fals falsch):
Code:
if($action=="del") { "DELETE * FROM tabelle WHERE id=$id" }
	echo "<a href='".$PHP_SELF."?action=del'>del</a>";
und zwar hab ich des dahin gesetzt, wo das Guestbook ausgelesen wird...
 
Der Eintrag (News oder GBook) wird hier ohne ID abgespeichert! Ich würde dir empfehlen als aller erste Spalte die ID angegeben werden! Dazu als Extra auto_increment angeben! Diese Spalte muss dann ein primary key sein
Beispiel:
PHP:
CREATE TABLE news (
  id int(11) auto_increment,
  name varchar(50),
  ....
  primary key(id)
  );
Dann hast du eine ID! Sonst wird das mit Editieren bzw. Löschen nicht wirklich gehen!

cya majinz ;)
 
hmm

ja und wie wird id dann belegt - automatisch??
weil bisher gings (auf die oben angegebene weise) nicht... - da kommt halt dann dieser fehler:"Parse error: parse error in c:\apache\htdocs\putenstall\new.php on line 88"
 
Der parse error ist warscheinlich auf
if($action=="del") { "DELETE * FROM tabelle WHERE id=$id" }
zurueckzufueren.
denn:
"DELETE * FROM tabelle WHERE id=$id"
ist meines wissen nach KEIN php befehl.
du musst php sagen was er mit dem befehl machen soll.
zb:
PHP:
mysql_query("DELETE * FROM tabelle WHERE id=$id");

Ich hoffe das hilft dir.

-emkey
 
Zurück