在用ThinkPHP做一个简单的留言本,现在开始做后台管理了
碰到个批量删除的问题通过复选框选择要删除的记录
提交后得到的多个记录的ID
那么怎么实现批量删除这些ID的记录呢?
求高人解答

解决方案 »

  1.   

    获得id就行了啊,id是一个数组,循环数组删除或者delete table where id in(1,2,3,4,5,6)
      

  2.   


    这个我知道
    问题是在thinkPHP里怎样实现
      

  3.   

    也是一样啊,只是sql不同了而己
      

  4.   


    我没有用SQL语句
    用的是现成的MODEL里的方法
    $ly=new LyModel();
    $date=$ly->create(); //从提交的表单里获取ID然后
    如果删除一条数据的话是这样
    $ly->where('id=5')->delete(); 删除多条呢?你说的用SQL语句我知道
    我说的是在THINKPHP框架里 怎样用它提供的方法来实现;
      

  5.   

    如果本身不带有批量删除的语句,那就需要在for循环里面执行类似$ly->where('id=5')->delete();这样的语句,
    但问题是lz你了解$data的结构吗?是数组吗?
      

  6.   


    <?php
    $ly->deleteAll("id in (1,2)");
    ?>
    其實Model:delete提供更多的參數,像刪除順序,記錄數等
    返回記得是刪除的記錄數,如果成功的話
      

  7.   


    貌似没有在MODEL类里找到deleteAll()方法
      

  8.   


    我用過的是 v1.5.0版在ThinkPHP\Lib\Think\Core\Model.class.php 也有這個方法的定義 在1700行左右如果你用的版本沒有這個方法其實也可以用
    $ly->delete("id in (1,2)");一樣行的
      

  9.   

    $id = explode(",", $ids);
    $ly->delete($id);手册 模型 里面有 这方面的信息
      

  10.   

    我正在使用thinkphp 有些简单的问题还是能回答你的
      

  11.   

    看这一句:$ly->where('id=5')->delete();
    很明显,把id=5换成id in (5,6,7)也是成立的
      

  12.   

    遇到同样的问题,以上的方法貌似都不行啊
    用循环来删除的话,循环里面的结束点不好控制,除非说定义到无穷大
    selectall();方法没有
    然后就是$table->where(id in (1,2,3))->delete();关键是此处获得的id是数组变量,不是1,2,3这样的确定的值