ich stehe wiedermal vor einem Problem und brauche euren Rat. Ich möchte Datenbankeinträge in einer Tabelle listen und daneben einen Löschbutton womit man den Wunscheintrag löschen kann.
Das ganze sollte in etwa so aussehen:
Code:
id | title | [URL="#"]Löschbutton[/URL]
Kann mir da wer von euch nen Codesnippet geben womit ich das umsetzen kann?
Ich bräuchte ja das eigentliche Snippet womit ich den Beitrag auch löschen kann. Sprich die delete.php Bin leider noch nicht besonders weit mit PHP
So weit ich weiß brauchst du keine delet.php - du kannst auch deine aktuelle Datei löschen und eine Succes Message einblenden lassen. Das Script packst du eigentlich nach oben.
Wie bereits erwähnt solltest du noch absichern welcher Rank was löschen kann. Einfach die aktuelle SESSION abfragen was für einen Rank der angemeldetete Benutzer hat.
Falls du es so machen willst wie Caiv es dir vorschlägt:
Bei delete.php?id=4 wird über die GET-Methode der Wert 4 übermittelt. Durch $_GET['id'] kannst du ihn ansprechen.
Code:
$id = $_GET['id'];
$query = mysql_query("DELETE FROM events WHERE id = $id");
Evtl. " ' . um $id herum, falls es nicht als Variable wahrgenommen wird.
An deiner Stelle würde ich eher ein Formular aus der Ausgabe machen und wenn man den Button zum löschen klickt, wird er abgeschickt und löscht direkt. So in etwa wie Guron schrieb. Du musst halt wie eben bereits oft gesagt aufpassen, wer zu der Datei Zugang hat.
Falls du es so machen willst wie Caiv es dir vorschlägt:
Bei delete.php?id=4 wird über die GET-Methode der Wert 4 übermittelt. Durch $_GET['id'] kannst du ihn ansprechen.
Code:
$id = $_GET['id'];
$query = mysql_query("DELETE FROM events WHERE id = $id");
Evtl. " ' . um $id herum, falls es nicht als Variable wahrgenommen wird.
An deiner Stelle würde ich eher ein Formular aus der Ausgabe machen und wenn man den Button zum löschen klickt, wird er abgeschickt und löscht direkt. So in etwa wie Guron schrieb. Du musst halt wie eben bereits oft gesagt aufpassen, wer zu der Datei Zugang hat.
Übrigens würde ich Mysqli verwenden.
Vorher aber bitte noch escapen sonst ist ein kompletter DB Zugriff möglich.
Ich werds morgen mal austesten. Erstmal ein großes Danke an die tatkräftigen Lösungsvorschläge
Zur Berechtigung: Das Vorhaben ist nur für ein Adminpanel gedacht, wozu der Admin Zugang hat. Sprich wer kein Admin ist kommt auch nicht hin (hab ne Session vom Login davor, nur nicht im Snippet gepostet )
Oder man schreibt eine Funktion, die alle Daten aus der DB in einem Array speichert.
So muss man nicht den HTML Code in die while-Schleife schreiben und kann den selben Code an mehreren Stellen nutzen
Oder man schreibt eine Funktion, die alle Daten aus der DB in einem Array speichert.
So muss man nicht den HTML Code in die while-Schleife schreiben und kann den selben Code an mehreren Stellen nutzen
Um die Inhalt des Arrays aber wieder auszugeben braucht man wieder ne schleife (foreach / while / for whatever), von daher ist es grad egal
Um die Inhalt des Arrays aber wieder auszugeben braucht man wieder ne schleife (foreach / while / for whatever), von daher ist es grad egal
Jain^^
Wenn er auf einer Startseite alle Einträge auslesen will und nochmal im Backend, müsste er 2x mit einer While-Schleife arbeiten.
Mit einem Array kann man nur die Werte ausgeben, die an der Stelle gebraucht werden. Auf der Startseite sollen ja z.B. nicht die Links zum Löschen angegeben werden^^
PHP Code:
$db = new mysqli(...);
function getBeitraege() {
GLOBAL $db;
$sql = "SELECT * FROM `tabelle`";
$result = $db->query($sql);
$results = array();
while ($row = $result->fetch_assoc()) {
$results[] = $row;
}
return $results;
}
Dann kann man später mit einer foreach-Schleife nur die Werte ausgeben die man braucht:
Wenn er auf einer Startseite alle Einträge auslesen will und nochmal im Backend, müsste er 2x mit einer While-Schleife arbeiten.
Mit einem Array kann man nur die Werte ausgeben, die an der Stelle gebraucht werden. Auf der Startseite sollen ja z.B. nicht die Links zum Löschen angegeben werden^^
PHP Code:
$db = new mysqli(...);
function getBeitraege() { GLOBAL $db;
$sql = "SELECT * FROM `tabelle`"; $result = $db->query($sql);
$results = array();
while ($row = $result->fetch_assoc()) { $results[] = $row; }
return $results; }
Dann kann man später mit einer foreach-Schleife nur die Werte ausgeben die man braucht:
foreach (getBeitraege() as $beitrag) { //Alles was du im Backend brauchst echo '<a href="delete.php?id=' . $beitrag['id'] . '">Löschen</a>'; ... }
Wenn Frontend und Backend allerdings getrennt sind (so wie es sein sollte), dann würde sowieso niemals beides gleichzeitig aufgerufen werden, was somit die Performanceverbesserung durch die einmalige Zwischenspeicherung im Array wieder zu nicht machen würde.
Außerdem würde es auf der Startseite nicht viel bringen alle Einträge zu selectieren (was man vermeiden sollte) sondern dort auch nur die, die benötigt werden. Fürs Backend bräuchte man dann schon alle, deshalb würden sich hier unterschiedliche Funktionen anbieten.
LIFETIME WERBUNG NUR 75ELITEGOLD [1400+ Beiträge | 6 Beiträge am Tag !!!STEIGEND!!!] 05/01/2012 - elite*gold Trading - 0 Replies Hey ^Topic
Ich biete euch Meinen Service an da ich dringend etwas elitegold benötige und meine Signatur eh etwas leer ist . Da dachte ich mir : warum vermiete ich nicht miene Signatur ? Und der Thread ist die Antwort auf meine Frage :D
Also wenn ihr interesse habt wie schon gessat 75 LIFETIME only LIFETIME !
Ändern von Dem Text selbstverstänflich kostenlos!