Freigeben von Gästebucheinträgen

Wambo

Mitglied
Hallo,
Ich wollte euch mal fragen was bei meinem Code fehlt.
Also, ich woltte, wie der Titel dieses Themas schon sagt, eine Freigabe- Funktion für mein Gästebuch machen. Hier ist der Code-Abschnitt der dafür sorgen soll:
PHP:
$freigeben = "INSERT INTO 
							`Freigegeben`
								 ( `ID`, `Name`, `E-Mail`, `Betreff`, `Nachricht` )
					VALUES 
					('".mysql_real_escape_string($_POST['ID'])."', '".mysql_real_escape_string($_POST['Name'])."', '".mysql_real_escape_string($_POST['E-Mail'])."', '".mysql_real_escape_string($_POST['Betreff'])."', '".mysql_real_escape_string($_POST['Nachricht'])."'

)";
Ich habe mir das so überlegt. Man gibt die ID des Eintrages in ein Textfeld ein. Wenn man auf den Freigeben Button klickt erscheint dieser Eintrag auf einer Seite auf der halt die Freigeschalteten Einträge sind.
Nur wenn ich auf den button klicke sieht man in der Tabelle die ID und 4 Leere Felder(Name, E-Mail, Betreff, Nachricht). Wie kann ich mein Problem lösen.
Vielen dank für eure Hilfe.
 
Ähhm. Ich gehe davon aus das Id , Name, etc. aus einer seperaten Tabelle kommen oder? Dann solltest du diese erste einmal auslesen bevor du sie in "Freigegeben" eintragen kannst, oder du machst eine seperate spalte die "freigegeben" heisst und die setzt du auf knopfdruck von "false" nach "true"
 
Jeder Datensatz benötigt ein Attribut, das beschreibt, ob der Datensatz (also der Eintrag) freigegeben ist.
 
Hallo!

Verstehe ich Dich richtig?
Die User sollen Gästebucheinträge machen können, diese sollen aber erst nach von Dir erfolgter Kontrolle angezeigt werden?
Mir scheint es als wenn Du Dir doppelte Arbeit machst.
Ich würde die User ganz normal die Einträge machen lassen, hierbei bekommt jeder Eintrag einen Status (z.b. "0" für nicht freigegeben).
Nun lässt Du Dir auf einer Admin-Seite alle Einträge mit dem Status "0" anzeigen.
Jeder dieser Einträge bekommt eine Checkbox (um einen oder mehrere Einträge Freizugeben, also den Status von "0" auf z.b. "1" zu ändern).
Du markierst also die Checkboxen von den Einträgen die Du freigeben willst und führst ein UPDATE-Query auf den Status an Hand der ID des jeweiligen Eintrags aus.
Auf der Gästebuchseite fragst Du auch den Staus der Einträge ab, ist der Status auf "1" gesetzt, werden die Einträge angezeigt, ist er auf "0" gesetzt werden sie halt nicht angezeigt..

Warum also der Weg über eine (wie mir scheint) zusätzliche Tabelle?

Gruss Dr Dau
 
Du erstellst erst einmal eine neue Spalte in deiner Datenbank die "freigegeben" oder wie auch immer heisst.

Dann holst du per knopfdruck die passenden Daten der ID aus der db mit:

PHP:
$ID=$_REQUEST["ID"];
$Query_daten = mysql_query("SELECT * FROM meine_tabelle WHERE ID = \"$ID\"") or die(mysql_error());
$Count_daten = mysql_num_rows($Query_daten);
$R=mysql_fetch_object($Query_daten);

und dann lässt du den Eintrag mit

PHP:
$update ="UPDATE meine_tabelle SET 
ID='$R->ID',
Name='$R->Name',
E-Mail='$R->E-Mail',
##etc
Freigabe='true'
WHERE ID ='$ID'";
mysql_query($update) or die(mysql_error());

wieder in die DB eintragen. Nun musst du nur noch auf der Seite wo die Einträge angeziegt werden sollen sagen das du nur Freigegebene Einträge sehen möchtetst

dies machst du in etwa so:

PHP:
$Query_daten2 = mysql_query("SELECT * FROM meine_tabelle WHERE Freigabe = \"true\"") or die(mysql_error());
$Count_daten2 = mysql_num_rows($Query_daten2);

Jetzt per while schleife den Query ausgeben und viola.
 
penalizer hat gesagt.:
Du erstellst erst einmal eine neue Spalte in deiner Datenbank die "freigegeben" oder wie auch immer heisst.

Dann holst du per knopfdruck die passenden Daten der ID aus der db mit:

PHP:
$ID=$_REQUEST["ID"];
$Query_daten = mysql_query("SELECT * FROM meine_tabelle WHERE ID = \"$ID\"") or die(mysql_error());
$Count_daten = mysql_num_rows($Query_daten);
$R=mysql_fetch_object($Query_daten);

und dann lässt du den Eintrag mit

PHP:
$update ="UPDATE meine_tabelle SET 
ID='$R->ID',
Name='$R->Name',
E-Mail='$R->E-Mail',
##etc
Freigabe='true'
WHERE ID ='$ID'";
mysql_query($update) or die(mysql_error());

wieder in die DB eintragen. Nun musst du nur noch auf der Seite wo die Einträge angeziegt werden sollen sagen das du nur Freigegebene Einträge sehen möchtetst

dies machst du in etwa so:

PHP:
$Query_daten2 = mysql_query("SELECT * FROM meine_tabelle WHERE Freigabe = \"true\"") or die(mysql_error());
$Count_daten2 = mysql_num_rows($Query_daten2);

Jetzt per while schleife den Query ausgeben und viola.
Irgendwie versteh ich die Antwort nicht kannst du das irgendwie nochmal anders erklären oder ist das schon das einfachste? Und kann man den Code noch einfacher schreiben?
 
Zurück