-
//connect. 比较新版本的PHP已经不建议用mysql_函数族了.推荐用PDO. $dsn = 'mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $password = ''; $pdo = new PDO($dsn, $user, $password); $pdo->exec('set names utf8'); $sql = "select * from `deepcate`"; $rs = $pdo->query($sql); $cates = $rs->fetchAll();查看全部
-
<?php header("content-type:text/html;charset=utf-8"); @mysql_connect("localhost","root",""); mysql_select_db("demo"); mysql_query("set names utf8"); $sql = " CREATE TABLE `deepcate` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `pid` INT UNSIGNED NOT NULL, `catename` VARCHAR(30) NOT NULL, `cateorder` INT UNSIGNED NOT NULL DEFAULT '0', `createtime` INT(10) NOT NULL )"; mysql_query($sql); $sql1=" INSERT INTO `deepcate`(`id`,`pid`,`catename`,`cateorder`,`createtime`) VALUES (1,0,'新闻',0,0), (2,0,'图片',0,0), (3,1,'国内新闻',0,0), (4,1,'国际新闻',0,0), (5,3,'北京新闻',0,0), (6,4,'美国新闻',0,0), (7,2,'美女图片',0,0), (8,2,'风景图片',0,0), (9,7,'日韩明星',0,0), (10,9,'日本AV',0,0); "; mysql_query($sql1);查看全部
-
无限级分类的两种实现方法: 一、递归方法实现 二、全路径方法实现 两者的表结构设计都是在栏目表中增加一个字段例如名字为fatherid 递归方法实现的表的fatherid用来存放父级栏目的id,查询的时候根据递归实现查询所有子栏目和所在栏目 全路径方法的表的fatherid字段则是存放一个字符串,以特殊的结构来表示栏目的深度,再用字符串的操作函数实现查询所有子栏目和所在栏目(where id in) 用到的陌生函数 mysql:concat(字段名,'符号',字段名1) as a 字段名和字段名1用指定符号连接 作为a php: krsort($arr); — 对数组按照键名逆向排序 数据表添加一个字段居然可以这么用,哈哈,精彩!查看全部
-
递归就是程序调用自身的编程技巧查看全部
-
什么是递归?程序调用自身的编程技巧称为递归查看全部
-
无限极分类常见的几种方式查看全部
-
数据表设计查看全部
-
递归无限分类原理。。。查看全部
-
无限级分类,递归,全路径查看全部
-
select id,catename,path,concat(path,',',id) as fullpath from deepcate where 1 order by fullpath asc;查看全部
-
function getCatePath($pid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$pid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort对数组按键名逆向 return $result; } function displayCatePath($cid,$url='cate.php?cid=') { $res = getCatePath($cid); $str = ''; foreach ($res as $key => $val) { $str.= "<a href={$url}{$val['id']}>{$val['catename']}</a>>"; } return $str; } echo displayCatePath(10);查看全部
-
function getList($pid = 0, &$result = array(), $spac = 0) { $spac = $spac + 2; $sql = "SELECT * FROM deepcate WHERE pid=$pid"; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)) { $row['catename'] = str_repeat(' ', $spac) . '|--' . $row['catename']; $result[] = $row; getList($row['id'], $result, $spac); } return $result; } function displayCate($pid = 0, $selected = 1) { $rs = getList($pid); $str = '<select name="cate">'; foreach ($rs as $key => $val) { $selectedstr = ''; if ($val['id'] == $selected) { $sellectedstr = 'selected'; } $str .= "<option {$selectedstr}>{$val['catename']}</option>"; } return $str .= '</select>'; } echo displaycate(0, 1);查看全部
-
这里的$row会死循环吧?查看全部
-
<?php include_once "db_inc.php"; include_once "header.php"; function myInfinite($pid=0,&$result=array(),$nb_times=0){ //将数据全部保存到$result数组,所以用引用传值,来达到直接改变数据目的 $nb_times += 4; $sql = "select * from myclassification where pid={$pid}"; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)) { # code... $row['classi_name'] = str_repeat(" ",$nb_times)."|---".$row['classi_name']; $result[] = $row; myInfinite($row['id'],$result,$nb_times); } return $result; } function displayClassi($id,$str=''){ //在网页中输出的是字符串,因此我们用空字符串来保存要显示的下拉菜单 $dis_res = myInfinite(); $str .= "<select>"; //调用分类函数,得到二维数组 foreach ($dis_res as $key => $value) { //遍历 # code... if($id == $value['id']){ $str .= "<option selected=selected>".$value['classi_name']."</option>"; }else{ $str .= "<option>".$value['classi_name']."</option>"; } } $str .= "</select>"; return $str; } echo displayClassi(15);查看全部
-
无限分类实现方法查看全部
举报
0/150
提交
取消