以分层方式从 php mysql 中删除记录


Delete record from php mysql in hierarchical manner

我想以分层方式从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);   
                }
            }   
        }
    } 

这是我的函数,我卡在这里,它删除了一条记录

关系数据库不容易用于树结构。如果您只有idparent_id字段,则必须执行大量循环和递归才能使用树。这就是Nested Sets或MPTT被发明的原因。您应该为您的树移动到该模型,这个问题将自行解决。

delete from your_table order by id desc

要用 php 转动表格:

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

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