php无极分类
<?php
date_default_timezone_set('PRC'); header('Content-type:text/html;charset=UTF-8');
/*
$a_list = array( 1=>array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'), 2=>array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父亲'), 3=>array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'), 4=>array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'), 5=>array('ID'=>5, 'PARENT'=>4, 'NAME'=>'儿子'), 6=>array('ID'=>6, 'PARENT'=>5, 'NAME'=>'孙子'), 7=>array('ID'=>7, 'PARENT'=>2, 'NAME'=>'姐妹'), 8=>array('ID'=>8, 'PARENT'=>3, 'NAME'=>'表亲'), 9=>array('ID'=>9, 'PARENT'=>7, 'NAME'=>'甥儿'), 10=>array('ID'=>10, 'PARENT'=>4, 'NAME'=>'女儿'), 11=>array('ID'=>11, 'PARENT'=>10, 'NAME'=>'外孙'), 12=>array('ID'=>12, 'PARENT'=>5, 'NAME'=>'孙女'),
13=>array('ID'=>13, 'PARENT'=>0, 'NAME'=>'祖父的哥'),
14=>array('ID'=>14, 'PARENT'=>13, 'NAME'=>'祖父的哥的儿子'), );
$str = '';
function tree($tree,$id,$lev='|--'){
$str = '';
foreach ($tree as $key=>$items)
{
if($items['PARENT']==$id){
$newid=$items['ID'];
//$str .= '<dd style="background-color:#CCC; line-height:2em; border:1px solid #CCC; margin-top:3px;">'.$lev.$items['NAME']."---<a onclick=\"alert('删除栏目ID: '+{$items['ID']})\">点击删除---<a onclick=\"alert('insert into (id,{$items['ID']},{$items['NAME']}下级)')\">增加子栏目</a></dd>";
$str .= '<dd>'.$lev.$items['NAME'].'</dd>';
$str .= tree($tree,$newid," ".$lev); }
}
return $str;
}
foreach ($a_list as $key=>$items){
if($items['PARENT']==0)
{
$str .= sprintf('<dt onclick="alert(\'insert into (id,%d,顶级的下级)\')">%s<dt>',$items['PARENT'],$items['NAME']);
$str .= tree($a_list,$items['ID']);
} }
//显示树型.
echo '<dl>';
echo $str;
echo '</dl>'; //删除ID做法.
foreach ($a_list as $id => $item){
if ($item['PARENT']){
unset($a_list[$id]['PARENT'],$a_list[$id]['NAME']);
$a_list[$item['PARENT']][$item['ID']] = &$a_list[$id];
}
}
//获得自己的全部子孙,自己的ID为4
function array_($_list){
static $deleid;
foreach ($_list as $key => $val){
if(is_array($val))
array_($val);
if($key === 'ID')
$deleid[] = $_list[$key];
}
return $deleid;
}
//让GET提交一个删除ID过来.获得数组, 然后用 delete in();
$arr = array_($a_list[1]);
echo '这就是你所需要删除的ID 及其下的子ID;<br>';
print_r($arr); exit;
*/ /*
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL DEFAULT '0',
`cname` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
**/
mysql_connect('localhost', 'root', '') or die('Cannot connected to mysql server');
mysql_select_db('security');
mysql_query('set names utf8'); $sql = 'select * from category';
$rs = mysql_query($sql);
/*
function c($id) {
global $rs;
while ($row = mysql_fetch_assoc($rs)) {
if($row['pid'] == $id) {
$result[$row['id']] = $row;
$index[$row['id']] =& $result[$row['id']];
}else {
$index[$row['pid']][$row['id']] = $row;
$index[$row['id']] =& $index[$row['pid']][$row['id']];
}
} return $result;
} $v = c(0);
var_dump($v);
exit;
*/ $categories = array();
while ($row = mysql_fetch_assoc($rs)) {
$categories[] = $row;
} /*
foreach ($categories as &$r) {
if ($r['pid']) { // 如果有父类
foreach ($categories as &$r2) { // 循环 找到父类 移到父类下
if ($r['pid'] == $r2['id']) {
$r2['children'][] = &$r;
}
}
//unset($categories[$k]);
}
} foreach ($categories as $k=>$v) {
if ($v['pid']) {
unset($categories[$k]);
}
}
var_dump($categories);
exit;
*/ //$arr = get_comment($categories);
//echo get_tree($arr); /*
function pt($arr, $pid = 0) {
$tree = array();
foreach ($arr as $value) {
if ($value['pid'] == $pid) {
$value['son'] = pt($arr, $value['id']);
$tree[] = $value;
}
}
return $tree;
} $tree_arr = pt($categories);
exit;
*/ echo '<select>';
treew($categories);
echo '</select>'; function treew($arr, $pid = 0, $n = 0){
$s = str_pad('',$n,'-');
$s = str_replace('-', ' ', $s); for ($i=0; $i < count($arr); $i++) {
if ($pid == $arr[$i]['pid']) {
echo '<option>' . $s .$arr[$i]['cname']. "</option>\n";
treew($arr, $arr[$i]['id'], $n+1);
}
}
} function get_comment($categories, $pid = 0) {
$array = array();
foreach ($categories as $key => $value) {
if ($pid == $value['pid']) {
$value['son'] = get_comment($categories, $value['id']);
$array[] = $value;
}
} return $array;
} function get_tree($arr) {
$html = '';
foreach ($arr as $key => $value) {
if (empty($value['son'])) {
$html .= $value['cname'] . '<br/>';
} else {
$html .= $value['cname'] . get_tree($value['son']) . '<br/>';
}
}
return $html; } exit; $SQL = 'SELECT * FROM sql_in WHERE id = ? LIMIT ?'; echo compile_binds($SQL, array(5,2,3)); function compile_binds($sql, $binds, $bind_marker = '?') { if (strpos($sql, $bind_marker) === FALSE) {
return $sql;
} if ( ! is_array($binds)) {
$binds = array($binds);
} $segments = explode($bind_marker, $sql); if (count($binds) >= count($segments)) {
$binds = array_slice($binds, 0, count($segments)-1);
} $result = $segments[0];
$i = 0; foreach ($binds as $bind)
{
$result .= _escape($bind);
$result .= $segments[++$i];
} return $result;
} function _escape($escape_obj) {
/*
if ($like === TRUE) {
$str = str_replace(array('%', '_'), array('\\%', '\\_'), $str);
}
*/ if (is_array($escape_obj)) {
foreach ($escape_obj as $key => $value) {
$escape_obj[$key] = _escape($value);
} return $escape_obj;
} return addslashes($escape_obj);
}
php无极分类的更多相关文章
- ASP.MVC EASY UI 入门之 —— Tree & ComboTree
1.常规的EASY UI的tree和comboTree代码基本是官方的DEMO都有的,虽然很简单,但是还是要实践的做一次,才能更清晰的了解和使用它!先上效果图 因为用的是code first,所以数据 ...
- 神经网络、logistic回归等分类算法简单实现
最近在github上看到一个很有趣的项目,通过文本训练可以让计算机写出特定风格的文章,有人就专门写了一个小项目生成汪峰风格的歌词.看完后有一些自己的小想法,也想做一个玩儿一玩儿.用到的原理是深度学习里 ...
- 开源 iOS 项目分类索引大全 - 待整理
开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...
- Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...
- Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索
Atitit 知识管理的重要方法 数据来源,聚合,分类,备份,发布 搜索 1.1. Rss 简易信息聚合(也叫聚合内容 Really Simple Syndication1 1.1. Rss 简易信息 ...
- 8.SVM用于多分类
从前面SVM学习中可以看出来,SVM是一种典型的两类分类器.而现实中要解决的问题,往往是多类的问题.如何由两类分类器得到多类分类器,就是一个值得研究的问题. 以文本分类为例,现成的方法有很多,其中一劳 ...
- SVM分类与回归
SVM(支撑向量机模型)是二(多)分类问题中经常使用的方法,思想比较简单,但是具体实现与求解细节对工程人员来说比较复杂,如需了解SVM的入门知识和中级进阶可点此下载.本文从应用的角度出发,使用Libs ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立,就知道表的关系和用处了,当然,我的设计只是一个参考,你可能有很多改进的地方. 我们的工作流具体细节流程是这样的: 最终我们的模 ...
- 从零开始编写自己的C#框架(21)——添加分类类型页面
页面权限与页面控件权限经过简单的调试后,终于启用起来了,以后大家添加新页面时,就必须按照本章介绍的方法,将你新增的页面注册到系统中,这样才能访问与进行相关操作. 下面讲讲如何创建一个分类类型的页面. ...
随机推荐
- hdu1051 Wooden Sticks
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1051 大意:求最少升序序列的个数. #include <cstdio> #include &l ...
- 判断脚本,图片,CSS,iframe等是否加载完成
1.图片 <img id="MyImg" src="src"/>jquery实现:$("#MyImg").load(functi ...
- Helpers\Sessions
Helpers\Sessions The session is a static class, this means it can be used in any controller without ...
- centos 配置NFS服务器
转载:http://boloveyo.blog.163.com/blog/static/203926187201232383956558/ 系统是CentOS5.6,假设NFS Server IP为1 ...
- eclipse 的小技巧
1. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧.它可以列出当前类中的所有方法及属性,你只需输入你想要 ...
- css笔记13:display用法
1.代码演示: element.html如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- 用对象型泛型和ArraysList写一个输入学员信息并展示
题目:录入学员信息并保存,当录入学员的编号为0时结束,展示出学员信息 //student类 public class Student { public int id; public String na ...
- uva 699 The Falling Leaves dfs实现
额,刘汝佳小白里面的配套题目. 题目求二叉树同垂直线上结点值的和. 可以用二叉树做,挺水的其实. 尝试使用dfs实现了:开一个大点的数组,根节点为最中间那点,然后读取时就可以进行和的计算了. 代码: ...
- java+mysql实现保存图片到数据库,以及读取数据库存储的图片
一:建表 二:获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下: /** * */ package c ...
- 解析$.grep()源码及透过$.grep()看(两次取反)!!的作用
先上jquery源码: grep: function( elems, callback, inv ) { var retVal, ret = [], i = 0, length = elems.len ...