Maison  >  Article  >  développement back-end  >  Quelle est la méthode de classification dans PHP Infinitus

Quelle est la méthode de classification dans PHP Infinitus

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-08-28 11:59:594612parcourir

Quelle est la méthode de classification dans PHP Infinitus

Ce que je vous apporte aujourd'hui est la technologie de classification Infinitus de PHP. Je divise la classification Infinitus en deux types. La méthode spécifique est la suivante :

Tout d'abord, laissez-moi vous montrer la table de base de données. Les bases de données sont des tâches, et les tables de base de données sont également des tâches.

Quelle est la méthode de classification dans PHP Infinitus

Recommandations associées : "Tutoriel PHP"

La première méthode (méthode tableau)

Cette méthode interroge d'abord toutes les données, et l'accent est mis sur le tableau bidimensionnel généré.

<?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 "
"; ?>

Quelle est la méthode de classification dans PHP Infinitus

La deuxième méthode (méthode de table de recherche)

Cette méthode n'interroge en fait que parent_id= 0, et utilisez ensuite une méthode récursive pour générer dynamiquement des conditions de requête, puis utilisez le task_id de chaque enregistrement comme task_id, puis effectuez une nouvelle série de requêtes jusqu'à ce que le résultat de la requête soit vide.

<?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 "
"; ?>

Quelle est la méthode de classification dans PHP Infinitus

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn