无限级列表

@TOC无限极列表 数据操作的实现方法
环境:php 7.3.4 phpstudy composer1.8

效果图

在这里插入图片描述
完整PHP项目链接

连接数据库

class dbCon{
    public function connec(){
        //POD 连接数据库
    global $servername;
    global $username;
    global $password;
    global $dbnames;
    $username="root";
    $password="root";
    $dbnames="relessdb";
//$dbnames="school";
try {
    $conn=new PDO("mysql:host=$servername;",$username,$password);
    //创建数据库
//    $sql="create DATABASE relessdb";
//    $conn->exec($sql);
//    echo "创建数据库 ok";
    $connec=new PDO("mysql:host=$servername;dbname=$dbnames",$username,$password);
    // 设置 PDO 错误模式,用于抛出异常
    $connec->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//    $sqll="
//    CREATE TABLE reless(
//    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
//    name VARCHAR(30) NOT NULL,
//    pid VARCHAR(30) NOT NULL
//    )";
//    $connec->exec($sqll);
//    echo "数据表 reless 创建成功\n\n";

    // 获取数据
    $tem=$connec->prepare("SELECT id,name,pid FROM reless");
    $tem->execute();
    // 设置结果集为关联数组
    $tem->setFetchMode(PDO::FETCH_ASSOC);
    $div = $tem->fetchAll();

    }catch (PDOException $e){
    //    echo $e->getMessage();
//    echo $sql."<br>".$e->getMessage();
//    echo $sqll."<br>".$e->getMessage();
    echo $tem."<br>".$e->getMessage();
    }
    return $div;
    }
}

树状图

function getTree($array,$pid=0,$level=0){
    static $tree=array();
    foreach ($array as $key=>$value){
        if($value['pid']==$pid){
            $value['level']=$level;
            $tree[]=$value;
            unset($array[$key]);//去除该节点,节省空间
            $value['children']=getTree($array,$value['id'],$level+1);
        }
    }
    return $tree;
}

建立表单

<form method="get" action=""  id="form">
{{--<form onsubmit="login()" id="form">--}}
    @csrf
    <table name="sele">
        <tr>
            <td>id</td>
            <td><input type="text" id="id" name="id_"></td>
        </tr>
        <tr>
            <td>name</td>
            <td><input type="text" id="name" name="name_"></td>
        </tr>
        <tr>
            <td>pid</td>
            <td><input type="text" id="pid" name="pid_"></td>
        </tr>
{{--        <tr><td><input type="button" id="button" onclick="login()" ></td>--}}
{{--        <tr><td><input type="button" id="button"  ></td>--}}
        <td><input type="radio" name="select" <?php if (isset($select) && $select=="edit") echo "checked";?>  value="edit"> 修改</td>
        <td><input type="radio" name="select" value="delet"> 删除</td>
        <td><input type="radio" name="select" value="add"> 新增        </td>
        <td> <input type="radio" name="select" value="diplay"> 展示</td>

        <td><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>

操作执行

$ids=$_REQUEST['id_'];
$names=$_REQUEST['name_'];
$pids=$_REQUEST['pid_'];
$selects=$_REQUEST['select'];


$connec=new PDO("mysql:host=$servername;dbname=$dbnames",$username,$password);
// 设置 PDO 错误模式,用于抛出异常
$connec->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
if($selects=='add'){
//    $sql=$connec->prepare("insert into reless(id,name,pid) value($ids,'$names',$pids)");
    $sql=$connec->prepare("insert into reless(name,pid) value('$names',$pids)");
    $sql->execute();
    echo "新增数据成功.\n";
}
if($selects=='delet'){
    $sql=$connec->prepare("delete from reless where name='$names' ");
    $sql->execute();
    // 设置结果集为关联数组
    echo "删除数据成功\n";
}
if($selects=='edit'){
    $sql=$connec->prepare("update reless set name=$names,pid=$pids where id=$ids");
    $sql->execute();
    // 设置结果集为关联数组
    echo "插入数据成功\n";
}
$c=new dbCon();
$s=$c->connec();//获取封装好的函数 值
$list=getTree($s);
//数据打印
foreach ($list as $value){
//        echo str_repeat('--',$value["level"]).$value["name"]."\n";
    echo str_repeat('--',$value["level"]).$value["name"].$value["id"]."\n";
}
$conn = null;//关闭连接
/** * */
?>

备注:删除操作按名字查询。
有参考网络其他代码。
自己的练习成果,请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值