-6

我想以分层方式从 mysql 中删除记录。我有这样的数据库

id pid
1 0
2 1
3 2

我想删除以上所有记录。请在 php mysql 中回复正确的功能。

function content_deleted($content_id=0, $parent_id=0)
    {
        if($parent_id==0)
        {
            $query = $this->db->query("SELECT content_id FROM tbl_content WHERE content_id = $content_id");
        }
        else
        {
            $query = $this->db->query("SELECT content_id FROM tbl_content WHERE content_parent_id = $content_id");  
        }

        if($query->num_rows()>0)
        {
            foreach($query->result() as $res)
            {
                $id = $res->content_id;
                if($parent_id==0)
                {
                    $this->db->query("DELETE FROM tbl_content WHERE content_id = $id"); 
                }
                else
                {
                    $this->db->query("DELETE FROM tbl_content WHERE content_parent_id = $id");
                    $this->content_deleted($content_id, $id);   
                }
            }   
        }
    } 

这是我的功能,我卡在这里它只删除一条记录

4

3 回答 3

1

关系数据库不适合树结构。如果您只有idparent_id字段,则必须进行大量循环和递归才能使用树。这就是发明嵌套集或 MPTT的原因。您应该为您的树移至该模型,这个问题将自行解决。

于 2012-05-14T08:09:26.843 回答
0
delete from your_table order by id desc
于 2012-05-14T08:07:29.527 回答
0

用 php 转表:

$SQL = "TRUNCATE TABLE `table_name`";
mysql_query($SQL);

这将重置所有自动增量。并删除表中的所有记录。

于 2012-05-14T08:14:55.817 回答