php无限极分类(通用版)

1,创建数据表

CREATE TABLE `city` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(64) NOT NULL,
  `pid` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8

2.php代码

<?php
/*
  @author:luowen
  @time:2013-12-30
  @desc:无限极分类通用版
*/
$name = @$_GET["newCity"];
$id = @$_GET['id'];
$conn = mysql_connect("localhost",'root','luowen');

print_r($_GET);

if(! $conn)
    exit(mysql_error());

mysql_query("use test",$conn);

$sql = "select * from city";

$source = mysql_query($sql,$conn);

$arr = array();
if($source)
{
    while($row = mysql_fetch_assoc($source))
    {
        $arr[] = $row;
    }
    mysql_free_result($source);
}
//存在get数据
if(isset($name) && isset($id) )
{
        $sql = "insert into city (name,pid) values ('$name',$id)";
        echo $sql;
        mysql_query($sql,$conn);
   }
mysql_close($conn);
//处理好的数据
$resArr = tree($arr);
//构造树类型的分级
function tree($arr,$pid = 0, $level = 0)
{
    if(empty($arr)) return ;
    static $resArr = array();

    foreach($arr as $val)
    {
        if($val['pid'] == $pid)
        {
            $val['level'] = $level;
            $resArr[] = $val;
            tree($arr,$val['id'],$level+1);
        }
    }

    return $resArr;
}

?>
<form action="./fenji.php" method="GET">
<select name="id">
<option value='0'>顶级分类</option>
<?php foreach($resArr as $val){ ?>
<option value="<?php echo $val['id'];?>"><?php echo str_repeat("  ",$val['level']) . $val['name'];?></option>
<?php } ?>
</select><input type="text" name="newCity" /><input type="submit" value="submit" />
</form>

  

posted @ 2013-12-30 01:13  arvim  阅读(347)  评论(0编辑  收藏  举报