>  기사  >  백엔드 개발  >  PHP Infinitus의 분류 방법은 무엇입니까

PHP Infinitus의 분류 방법은 무엇입니까

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-08-28 11:59:594613검색

PHP Infinitus의 분류 방법은 무엇입니까

오늘 소개해드릴 것은 PHP의 인피니투스 분류 기술입니다. 인피니투스 분류를 두 가지로 나누어보겠습니다. 구체적인 방법은 다음과 같습니다.

먼저 데이터베이스 테이블을 보여드리겠습니다. 데이터베이스도 작업이고, 데이터베이스 테이블도 작업입니다.

PHP Infinitus의 분류 방법은 무엇입니까

관련 추천: "PHP Tutorial"

첫 번째 방법(배열 방법)

이 방법은 실제로 모든 데이터를 먼저 쿼리하며 생성된 2차원 배열에 초점을 맞춥니다.

<?php
  //分类方法
  function make_list($parent,$deep = 0){
    global $tasks;//申明全局变量
    global $strArr;//申明全局变量
    $qianzhui = str_repeat(" ",$deep)."|--";
    foreach ($parent as $key => $value) {
      $strArr[] = $qianzhui.$value;
      if(isset($tasks[$key])){
        make_list($tasks[$key],++$deep);//递归调用函数
      }
    }
  }
  //数据库连接
  $dbc = mysqli_connect("localhost","root","1234","tasks");
  //拼接sql语句
  $q = "select task_id,parent_id,task from tasks where date_completed = &#39;0000-00-00:00:00:00&#39; order by parent_id,
  date_added asc";
  //执行sql
  $r = mysqli_query($dbc,$q);
  //遍历结果集
  while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
    //组成数组(一级键为parent_id,二级键为task_id,值为任务内容)
    $tasks[$parent_id][$task_id] = $task;
  }
  //打印数组
  echo "<pre class="brush:php;toolbar:false">";
  print_r($tasks);
  echo "
";   make_list($tasks[0]);   echo "
";
  //打印缩进数组
  print_r($strArr);
  echo "
"; ?>

PHP Infinitus의 분류 방법은 무엇입니까

두 번째 방법(조회 테이블 방법)

이 방법은 실제로 처음에 parent_id=0인 모든 작업만 쿼리한 후 재귀적 방법을 사용하여 쿼리 조건을 동적으로 생성한 후, 각 레코드는 task_id로 사용되며 쿼리 결과가 비어 있을 때까지 새로운 쿼리 라운드가 수행됩니다.

<?php
  function findArr($where = "parent_id = 0",$deep = 0){
    $dbc = mysqli_connect("localhost","root","1234","tasks");
    global $strArr;
    $q = "select task_id,parent_id,task from tasks where ".$where." order by parent_id,date_added asc";
    $r = mysqli_query($dbc,$q);
    $qianzhui = str_repeat(" ", $deep)."|--";
    while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
      $strArr[] = $qianzhui.$task;
      //拼接查询条件
      $where = "parent_id = ".$task_id;
      //递归查询
      findArr($where,++$deep);
    }
  }
  findArr();
  //打印缩进数组
  echo "<pre class="brush:php;toolbar:false">";
  print_r($strArr);
  echo "
"; ?>

PHP Infinitus의 분류 방법은 무엇입니까

위 내용은 PHP Infinitus의 분류 방법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.