PHP 무한 분류 드롭다운 ...LOGIN

PHP 무한 분류 드롭다운 목록 분류(1부)

구현 도식

递归.png

드롭다운 목록 무한 수준 분류

<?php
include ("conn.php");
function getList($pid=0,&$result=array(),$space=0){
    $space=$space+2;
    $sql="SELECT*FROM deepcate WHERE pid = $pid";
    $res = mysql_query($sql);
    while ($row = mysql_fetch_assoc($res)){
        $row['catename']=str_repeat('&nbsp;',$space).'|--|'.$row['catename'];
        $result[]=$row;
        getList($row['id'],$result,$space);
    }
    return $result;
}
$rs=getList();
function displayCate($pid=0,$selected=1){
    $rs=getList($pid);
    $str='';
    $str.="<select name='cate'>";
    foreach ($rs as $key=>$val){
        $selectedstr='';
        if ($val['id'] == $selected){
            $selectedstr="selected";
        }
        $str.="<option{$selectedstr}>{$val['catename']}</option>";
    }
    return $str.='</select>';
}
echo displayCate(0,2);
?>

예제는 아래에서 섹션별로 코드를 설명합니다.

코드 설명:

<?php
include ("conn.php");
function getList($pid=0,&$result=array(),$space=0){
   $space=$space+2;
   $sql="SELECT*FROM deepcate WHERE pid = $pid";
   $res = mysql_query($sql);
   while ($row = mysql_fetch_assoc($res)){
       $row['catename']=str_repeat('&nbsp;',$space).'|--|'.$row['catename'];
       $result[]=$row;
       getList($row['id'],$result,$space);
   }
   return $result;
}
$rs=getList();
?>
function getList($pid=0){
}
?>

먼저 pid를 상위 클래스 ID로 하고 0으로 정의되는 함수를 정의합니다.

$sql="SELECT*FROM deepcate WHERE pid = $pid";

SQL 문을 사용하여 PID 선택 표면의 하위 클래스를 쿼리합니다.

$res = mysql_query($sql);
//执行sql语句
    $result=array();
   while ($row = mysql_fetch_assoc($res)){
       $result[]=$row;
      }
   return $result;

결과를 배열에 넣고 결과로 반환합니다.

재귀는 함수가 자신을 호출하는 기술입니다. 하위 클래스를 쿼리할 때 getList($row['id'])를 호출해야 합니다.

하위 클래스의 ID를 다음 클래스의 ID로 사용해야 합니다. $row['id'])를 가져와야 합니다

이번 코드는

<?php
function getList($pid=0){
$sql="SELECT*FROM deepcate WHERE pid = $pid";
$res = mysql_query($sql);
  $result=array();
   while ($row = mysql_fetch_assoc($res)){       $result[]=$row;      }   return $result;
}
?>

재귀 연산에서 배열을 반환해야 하므로 참조 메소드를 사용하여 코드를 변경합니다

<?php
include ("conn.php");
function getList($pid=0,&$result=array()){
   $sql="SELECT*FROM deepcate WHERE pid = $pid";
   $res = mysql_query($sql);
   while ($row = mysql_fetch_assoc($res)){
       $result[]=$row;
       getList($row['id'],$result);
   }
   return $result;
}
?>

그럼 분류 스타일을 아름답게 꾸며보겠습니다

<?php
include ("conn.php");
function getList($pid=0,&$result=array(),$space=0){
   $space=$space+2;
   $sql="SELECT*FROM deepcate WHERE pid = $pid";
   $res = mysql_query($sql);
   while ($row = mysql_fetch_assoc($res)){
       $row['catename']=str_repeat('&nbsp;',$space).'|--|'.$row['catename'];
       $result[]=$row;
       getList($row['id'],$result,$space);
   }
   return $result;
}
$rs=getList();
print_r($rs);
?>

인쇄해서 관찰해보세요.


이 장의 핵심

  1. 무한 수준 분류의 재귀적 구현은 재귀를 사용하여 부모 노드를 찾고 가계도를 생성하는 것입니다.

  2. 하위 클래스 및 상위 클래스.

다음 섹션
<?php include ("conn.php"); function getList($pid=0,&$result=array(),$space=0){ $space=$space+2; $sql="SELECT*FROM deepcate WHERE pid = $pid"; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)){ $row['catename']=str_repeat(' ',$space).'|--|'.$row['catename']; $result[]=$row; getList($row['id'],$result,$space); } return $result; } $rs=getList(); print_r($rs); ?>
코스웨어