[PHP, MySql] News eintrag löschen

cille

Erfahrenes Mitglied
Hi ho,
habe ein News script geschrieben,
aber irgendwie funktioniert das löschen der Beiträge nicht.
Dies ist eine reine admin.php Datei,
die einzelnen bereiche werden mit
PHP:
if (isset ($_REQUEST['newsdel'])) { // admin.php?newsdel URL Inhalt auslesen
    // Inhalt
}
Ausgeführt.

Hier mal der Code zum rüberschaun, vielleicht entdeckt Ihr ja was.

PHP:
<?php
// News entfernen
if (isset ($_REQUEST['newsdel'])) {
	echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
	$sql_newsdel = "SELECT * FROM news";
	$result_newsdel = mysql_query($sql_newsdel);
	while ($row=mysql_fetch_assoc($result_newsdel)) {
		echo "[<a href='?newsdel=$row[id]'>Eintrag Löschen</a> ] ";
		foreach ($row as $name => $key) {
			echo "$key ";
		}
		echo "<br><br>";
	}
}
?>

Dank euch schonmal,

mfg,
cille
 
Ah,
bin ick doof, habe ganz vergessen, dass er ja was in der Datenbank löschen soll,
aber jetzt hab ich noch ein Fehler,
nachdem ich die Zeilen darunter geschrieben habe:

PHP:
// News entfernen
if (isset ($_REQUEST['news?delete'])) {
	echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
	$sql_newsdel = "SELECT * FROM news";
	$result_newsdel = mysql_query($sql_newsdel);
	while ($row = mysql_fetch_assoc($result_newsdel)) {
		echo "[<a href='?news?delete?$row[id]'>Eintrag Löschen</a> ] ";
		foreach ($row as $name => $key) {
			echo "$key ";
		}
		echo "<br><br>";
	}
}

if (isset ($_REQUEST['news?delete'])) {
	$sql_newsdel="DELETE FROM news WHERE id='$_REQUEST[news?delete]'"; // Zeile 161 wo der Fehler sein soll bzw entsteht
	if (mysql_query($sql_newsdel)) {
		header ("Location: admin.php?news?delete?true");
	}
}

if (isset ($_REQUEST['news?delete?true') {
	echo "News erfolgreich gelöscht!";
}

Fehler:
Code:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in C:\Programme\xampp\htdocs\projekte\Webdesign\truemmel\hp2\admin.php on line 161

habt ihr da ein plan?
 
Du musst folgendermaßen auf die Variable zugreifen:
PHP:
$sql_newsdel="DELETE FROM news WHERE id='$_REQUEST[delete]'";

// EDIT:
Außerdem:
PHP:
if (isset ($_REQUEST['delete']) && $_REQUEST['delete'] == "true") {
    echo "News erfolgreich gelöscht!";
}
und
PHP:
if (isset ($_REQUEST['delete'])) {
 
Hallo,

split hat gesagt.:
Du musst folgendermaßen auf die Variable zugreifen:
PHP:
$sql_newsdel="DELETE FROM news WHERE id='$_REQUEST[delete]'";
Besser wäre Folgendes:
PHP:
$sql_newsdel="DELETE FROM news WHERE id='".mysql_real_escape_string($_REQUEST['delete'])."'";
Stichwort: SQL-Injection.

Grüße,
Matthias
 
Mhhh,
irgendwie funktioniert das noch nicht,

Hier mal der obere teil:
PHP:
<?php
// Infotext
// Leider noch keinen, da das verstecken nicht klappt, muss mir was einfallen lassen
// ende

/* 
News Einstellungsmöglichkeiten START
*/

// News Links
if (isset ($_REQUEST['news'])) {
	echo "<a href='admin.php?news?add'>Erstellen</a><br>".
			 "<a href='admin.php?news?edit'>Bearbeiten</a><br>".
			 "<a href='admin.php?news?delete'>Löschen</a>";
}

// News Erstellen
if (isset ($_REQUEST['news?add'])) {
	echo "Hier können Sie News schreiben!";
?>

Hier nochmal das, was Ihr mir geraten habt:
PHP:
<?php
// News entfernen
if (isset ($_REQUEST['news?delete'])) {
	echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
	$sql_newsdel = "SELECT * FROM news";
	$result_newsdel = mysql_query($sql_newsdel);
	while ($row = mysql_fetch_assoc($result_newsdel)) {
		echo "[<a href='?news?delete?$row[id]'>Eintrag Löschen</a> ] ";
		foreach ($row as $name => $key) {
			echo "$key ";
		}
		echo "<br><br>";
	}
}

if (isset ($_REQUEST['news?delete'])) {
	$sql_newsdel="DELETE FROM news WHERE id='".mysql_real_escape_string($_REQUEST['delete'])."'"; 
	if (mysql_query($sql_newsdel)) {
	}
}

if (isset ($_REQUEST['delete']) && $_REQUEST['delete'] == "true") {
    echo "News erfolgreich gelöscht!";
}  
if (isset ($_REQUEST['delete'])) {
	echo "Es ist ein Fehler aufgetreten, versuchen Sie es erneut oder Verständigen Sie sich mit dem Webmaster";
}
		
/*
News einstellungsmöglichkeiten ENDE
*/

?>

Fehlermeldungen sind wech,
aber löschen tut er noch net.

mhhh,
es ist nur eine datei und zwar die admin.php

sie wird immer erweiter:
admin.php?news?delete....... usw.
 
Zuletzt bearbeitet:
Kann keiner Helfen?
habe alles mögliche versucht,
aber weiter reichen meine kenntnisse nicht,
bitte helft mir.
 
Ich bin mir nicht sicher obs daran liegt, aber du benutzt 2 x

PHP:
if (isset ($_REQUEST['news?delete']))

Einmal beim selektieren der Einträge aus der Datenbank und einmal wenn du sie löschen willst.
Über deinen Link
PHP:
<a href='?news?delete?$row[id]'>Eintrag Löschen</a>
ruft er dann aber immer nur die Selektion auf, oder?

Verusuchs mal so:

PHP:
<?php
// News entfernen
if (isset ($_REQUEST['news?delete'])) {
    echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
    $sql_newsdel = "SELECT * FROM news";
    $result_newsdel = mysql_query($sql_newsdel);
    while ($row = mysql_fetch_assoc($result_newsdel)) {
        echo "[<a href='?news?delete1?$row[id]'>Eintrag Löschen</a> ] ";
        foreach ($row as $name => $key) {
            echo "$key ";
        }
        echo "<br><br>";
    }
}

if (isset ($_REQUEST['news?delete1'])) {
    $sql_newsdel="DELETE FROM news WHERE id='".mysql_real_escape_string($_REQUEST['delete1'])."'"; 
    if (mysql_query($sql_newsdel)) {
    }
}

if (isset ($_REQUEST['delete']) && $_REQUEST['delete'] == "true") {
    echo "News erfolgreich gelöscht!";
}  
if (isset ($_REQUEST['delete'])) {
    echo "Es ist ein Fehler aufgetreten, versuchen Sie es erneut oder Verständigen Sie sich mit dem Webmaster";
}
        
/*
News einstellungsmöglichkeiten ENDE
*/

?>
 
Zuletzt bearbeitet:
Das ding ist ja, löschen tut er Sie nicht, aber nur eine leere seite erscheint.
Was soll deinermeinung nach ändern?

Hier nochmal der Code in kurzform:
PHP:
if (isset ($_REQUEST['news?delete'])) {
	echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
	$sql_newsdel = "SELECT * FROM news";
	$result_newsdel = mysql_query($sql_newsdel);
	while ($row = mysql_fetch_assoc($result_newsdel)) {
		echo "[<a href='?news?delete?$row[id]'>Eintrag Löschen</a> ] ";
		foreach ($row as $name => $key) {
			echo "$key ";
		}
		echo "<br><br>";
	}
}
if (isset ($_REQUEST['news?delete?'])) {
	$sql_newsdel="DELETE FROM news WHERE id='".mysql_real_escape_string($_GET['$row[id]'])."'"; 
	if (mysql_query($sql_newsdel)) {
	}
}

Würde mich auf deine Hilfe freun.
 
Verusuchs mal so:

PHP:
<?php
// News entfernen
if (isset ($_REQUEST['news?delete'])) {
    echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
    $sql_newsdel = "SELECT * FROM news";
    $result_newsdel = mysql_query($sql_newsdel);
    while ($row = mysql_fetch_assoc($result_newsdel)) {
        echo "[<a href='?news?delete1?$row[id]'>Eintrag Löschen</a> ] ";
        foreach ($row as $name => $key) {
            echo "$key ";
        }
        echo "<br><br>";
    }
}

if (isset ($_REQUEST['news?delete1'])) {
    $sql_newsdel="DELETE FROM news WHERE id='".mysql_real_escape_string($_REQUEST['delete1'])."'"; 
    if (mysql_query($sql_newsdel)) {
    }
}

if (isset ($_REQUEST['delete']) && $_REQUEST['delete'] == "true") {
    echo "News erfolgreich gelöscht!";
}  
if (isset ($_REQUEST['delete'])) {
    echo "Es ist ein Fehler aufgetreten, versuchen Sie es erneut oder Verständigen Sie sich mit dem Webmaster";
}
        
/*
News einstellungsmöglichkeiten ENDE
*/

?>

Funktioniert leider nicht,
und auf deine erste frage:
Er ruft nichts auf, einfach eine leere seite,
das macht mich wahnsinnig :D

hast vielleicht noch ein vorschlag?
solange probier ich nochmal rum ^^
 
Yeahr baby,
ich bin nochmal den kompletten code langgerutscht und habe die fehler gefunden nun löscht er diese.

Hier mal der richtige code:
PHP:
<?php
// News entfernen
if (isset ($_REQUEST["news?delete"])) {
    echo "Hier können Sie bestimmte News Einträge löschen! <br><br>";
    $sql_newsdel = "SELECT * FROM news";
    $result_newsdel = mysql_query($sql_newsdel);
    while ($row = mysql_fetch_assoc($result_newsdel)) {
        echo "[<a href='admin.php?news?delete=$row[id]'>Eintrag Löschen</a> ] ";
        foreach ($row as $name => $key) {
            echo "$key ";
        }
        echo "<br><br>";
    }
}

if (isset ($_REQUEST["news?delete"])) {
    $sql_newsdelete="DELETE FROM news WHERE id='".mysql_real_escape_string($_REQUEST['news?delete'])."'"; 
    if (mysql_query($sql_newsdelete)) {
			echo "Erfolgreich gelöscht!";
    } 
		else {
			echo "Fehlgeschlagen";
		}
		
}
        
/*
News einstellungsmöglichkeiten ENDE
*/

?>

ICH DANKE ALLEN DIE MIR GEHOLFEN HABEN DANKE
 
Zurück