PHP无限极分类

数据库代码:

mysql> desc category;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| pid        | int(11)     | NO   |     | NULL    |                |
| catename   | varchar(20) | NO   |     | NULL    |                |
| createtime | varchar(10) | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

mysql> select * from category;
+----+-----+--------------+------------+
| id | pid | catename     | createtime |
+----+-----+--------------+------------+
|  1 |   0 | beijing      | 1493778388 |
|  2 |   0 | shanghai     | 1493778388 |
|  3 |   1 | chaoyang     | 1493778476 |
|  4 |   1 | haidian      | 1493778476 |
|  5 |   3 | wangjing     | 1493778533 |
|  6 |   3 | jiuxianqiao  | 1493778533 |
|  7 |   4 | zhongguancun | 1493778575 |
|  8 |   2 | xunhui       | 1493778633 |
|  9 |   2 | changning    | 1493778633 |
| 10 |   8 | jiaotong     | 1493778685 |
+----+-----+--------------+------------+
10 rows in set (0.00 sec)

 

代码:

conn.php:

<?php
$conn = mysql_connect('localhost', 'root', 'root');

if($conn) {
    mysql_select_db("yii", $conn);
} else {
    die('database is connect false.');
}

 

index.php:

<?php
include_once('conn.php');

function get_str($id = 0) {
    global $str; 

    $sql = "select * from category where pid= $id";  
    $result = mysql_query($sql);

    if($result && mysql_affected_rows()){
        $str .=  PHP_EOL . '<ul>' . PHP_EOL; 
        while ($row = mysql_fetch_array($result)) {
            $str .= "<li>" . $row['id'] . "--" . $row['catename'] . "</li>" . PHP_EOL;
            get_str($row['id']);
        } 
        $str .= '</ul>' . PHP_EOL; 
    } 

    return $str; 
} 


function get_array($id=0){ 
    $sql = "select * from category where pid= $id"; 
    $result = mysql_query($sql);
    $arr = array(); 
    if($result && mysql_affected_rows()){
        while($rows=mysql_fetch_assoc($result)){
            $rows['list'] = get_array($rows['id']);
            $arr[] = $rows;
        } 
        return $arr; 
    } 
} 

echo get_str(0);

echo "<hr/>";

$list = get_array(0);
echo '<pre>';
print_r($list);
echo '</pre>';

  

结果:

get_str:

 

get_array:

Array
(
    [0] => Array
        (
            [id] => 1
            [pid] => 0
            [catename] => beijing
            [createtime] => 1493778388
            [list] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [pid] => 1
                            [catename] => chaoyang
                            [createtime] => 1493778476
                            [list] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 5
                                            [pid] => 3
                                            [catename] => wangjing
                                            [createtime] => 1493778533
                                            [list] => 
                                        )

                                    [1] => Array
                                        (
                                            [id] => 6
                                            [pid] => 3
                                            [catename] => jiuxianqiao
                                            [createtime] => 1493778533
                                            [list] => 
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 4
                            [pid] => 1
                            [catename] => haidian
                            [createtime] => 1493778476
                            [list] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 7
                                            [pid] => 4
                                            [catename] => zhongguancun
                                            [createtime] => 1493778575
                                            [list] => 
                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [id] => 2
            [pid] => 0
            [catename] => shanghai
            [createtime] => 1493778388
            [list] => Array
                (
                    [0] => Array
                        (
                            [id] => 8
                            [pid] => 2
                            [catename] => xunhui
                            [createtime] => 1493778633
                            [list] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 10
                                            [pid] => 8
                                            [catename] => jiaotong
                                            [createtime] => 1493778685
                                            [list] => 
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 9
                            [pid] => 2
                            [catename] => changning
                            [createtime] => 1493778633
                            [list] => 
                        )

                )

        )

)

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值