避免使用多个删除文件

时间:2014-01-18 18:50:39

标签: php mysql delete-row

我有一个网页,背后有一个非常大的CMS,您可以在其中添加新闻,添加图片和其他内容。当然,你也可以删除它们。

您只需单击“删除”,它将引导您进入删除脚本,删除表中的行。问题是我有4-5个删除脚本看起来完全相同,只是它们从不同的表中删除。我希望该表是一个变量,它跟踪用户来自哪个子页面,因此我只需要一个删除脚本,而不是多个。

这是您点击删除内容的按钮:

<a href='deletenews.php?id=<?php echo $id ?>'>DELETE</a>

请注意,它会删除“news”.php,如果它只是delete.php会很好。

删除脚本如下:

session_start();

if ($_SESSION['username']) {

    } else {
        include 'index.php';
        die ("<script> alert(You have to be logged in.');</script>");
    }

mysql_connect('localhost', 'username', 'password') or die (mysql_error());
mysql_select_db('database') or die (mysql_error());

mysql_query("DELETE FROM news WHERE id = '$_GET[id]'") or die(mysql_error());

header('Location: forside.php');

我希望有一个变量,而不是“新闻”。喜欢$ delete。但是该变量需要知道从哪个表中删除内容。有没有办法去做这个?我愿意改变我的所有代码,因为我认为这是更好的做法。

1 个答案:

答案 0 :(得分:0)

也许使用此检查:

$id = (int)$_GET['id'];
if ($id)
    if ($table == 'news') {
        // do something
        mysql_query("DELETE FROM $table WHERE id = $id") or die(mysql_error());
        // or this:
        //mysql_query("DELETE FROM news WHERE id = $id") or die(mysql_error());
    } elseif ($table == 'posts') {
        // do something
        mysql_query("DELETE FROM $table WHERE id = $id") or die(mysql_error());
        // or this:
        //mysql_query("DELETE FROM posts WHERE id = $id") or die(mysql_error());
    } else {
        die("You can not delete records from $table table");
    }
}