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); }