-
//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
提交
取消