1.无限极分类可以由三种方式完成(迭代,递归和引用) 这里我们之总结递归这种,其他两种后期在加入
2.形式:一般的分类树状结构 是adjacency list,也就是是id,parent id这中形式。
adjacency list -> 数据表格式类似id,pid,name这种格
3.详细代码:
1.链接数据库类:
2.重点(来实现无限极分类)
include 'config.php';
function getLists($pid = 0, &$lists = array(), $deep = 1) {
$link = content();
$sql = 'select * from category where pid='.$pid;
$res = mysqli_query($link,$sql);
if($res && mysqli_affected_rows($link)){
while ($row = mysqli_fetch_assoc($res)) {
$row['catename'] = str_repeat(' ', $deep).'|---'.$row['catename'];
$lists[] = $row;
getLists($row['id'], $lists, ++$deep); //进入子类之前深度+1
--$deep; //从子类退出之后深度-1
}
return $lists;
}
}
function displayLists($pid = 0, $selectid = 1) {
$result = getLists($pid);
$str = '<select>';
foreach ( $result as $item ) {
$selected = "";
if ( $selectid == $item['id'] ) {
$selected = 'selected';
}
$str .= '<option '.$selected.'>'.$item['catename'].'</option>';
}
return $str .= '</select>';
}
echo displayLists(0, 1);
3.效果图: