function DelNews()
{
$page = $_GET["page"];
$NewsID = $_GET["NewsID"] ? $_GET["NewsID"] : $_POST["NewsID"];
$conn = new DataBase();
for ($i = 0; $i < count($NewsID); $i++)
{
$conn->sql = "delete from news where NewsID=" . $NewsID[$i];
$conn->execute();
}
unset($conn);
Header("Location: Admin_News.php?page=" . $page);
}作用:可以单删文章,可以多删文章。
但有个问题:多删的话,可以。单删就出问题了,因为我获得的NewsID是一个字符串(数字型的,比如:229),而不是数组。就会出现问题。请问怎么解决??我是这么解决的:先判断是否为数组。
还有我这写获取参数的方法好吗?$NewsID = $_GET["NewsID"] ? $_GET["NewsID"] : $_POST["NewsID"];
function DelNews()
{
$page = $_GET["page"];
$NewsID = $_GET["NewsID"] ? $_GET["NewsID"] : $_POST["NewsID"];
$arr1[] = $NewsID;
$NewsIDList = is_array($NewsID) ? $NewsID : $arr1;
$conn = new DataBase();
for ($i = 0; $i < count($NewsIDList); $i++)
{
$conn->sql = "delete from news where NewsID=" . $NewsIDList[$i];
$conn->execute();
}
unset($conn);
Header("Location: Admin_News.php?page=" . $page);
}

解决方案 »

  1.   

    function DelNews() 

    $page = $_GET["page"]; 
    $NewsID = is_array($_REQUEST["NewsID"]) ? $_REQUEST["NewsID"] : array($_REQUEST["NewsID"]); 
    $ids = join(',', $NewsID); 
    $conn = new DataBase(); 
    $conn->sql = "delete from news where NewsID in ($ids)"; 
    $conn->execute(); 
    unset($conn); 
    Header("Location: Admin_News.php?page=" . $page); 
    }
      

  2.   


    尽量用一个sql解决,比如说in  或者用 or 把id 连接起来