用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3729|回复: 7
收起左侧

stblog 删除使用 循环删除

[复制链接]
发表于 2010-12-9 10:03:07 | 显示全部楼层 |阅读模式
stblog 批量删除 和 批量审核 都是使用循环语句删除的呀 ,这样频繁操作数据库,效率能好吗?

PHP复制代码
/**
     * 批量审核文章
     *
     * @access private
     * @return void
     */

        private function _approved()
        {
                $posts = $this->input->post('pid',TRUE);
                $approved = 0;
               
                if($posts && is_array($posts))
                {
                        foreach($posts as $post)
                        {
                                if(empty($post))
                                {
                                        continue;
                                }
                               
                                $content = $this->posts_mdl->get_post_by_id('pid', $post);
                               
                                if($content && $this->auth->exceed('editor', TRUE))
                                {
                                        if($this->posts_mdl->update_post($post, array('status' => 'publish')))
                                        {
                                                $approved++;   
                                        }
                                }
                               
                                $content = NULL;
                        }
               
                }
               
                ($approved > 0)
                                        ?$this->session->set_flashdata('success', '成功审核文章')
                                        :$this->session->set_flashdata('error', '没有文章被审核');
               
                go_back();
               
        }
复制代码

评分

参与人数 2威望 +3 收起 理由
Hex + 2 支持!以后多提意见!还给你加分,哈哈 ...
saturn + 1 细心呐!再接再厉!

查看全部评分

发表于 2010-12-9 10:26:14 | 显示全部楼层
saturn一会给你解释:)
发表于 2010-12-9 18:00:06 | 显示全部楼层
你很细心,能够考虑到这段代码所引发的效率问题。
但是,也需要考虑它会用在什么样的情况下。对于一个“通用”“博客”程序来说,我想,数据量应该不会大到因为这段代码影响效率的程度。
真到那一步了,可能通用程序也就帮不上你了,需要特别考虑很多提升效率的方式,你认为呢?
发表于 2010-12-9 20:41:57 | 显示全部楼层
回复 3# saturn


    我觉得可以组合成一个 SQL,一起提交比较好吧。
发表于 2010-12-9 20:47:26 | 显示全部楼层
回复 4# Hex


    嗯,有改进的余地。
 楼主| 发表于 2010-12-20 22:33:58 | 显示全部楼层
嗯,看来 什么场合 用什么样解决思路 还是正确的,但是作为一个程序员应该考虑考虑用户体验和效率。呵呵
发表于 2010-12-27 12:19:54 | 显示全部楼层
批量操作用IN()比较合适
1、将参数拼成:?pid=12,13,18,22
2、sql里:WHERE pid IN(12,13,18,22)
头像被屏蔽
发表于 2011-6-24 21:34:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

本版积分规则