最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP 無限分類三種方式 非函數(shù)的遞歸調(diào)用!

 更新時間:2011年08月26日 19:57:50   作者:  
今天分享下自己學習細說php中的無限分類方法。學習php的朋友可以參考下。

php無限分類大致有三種方式,

  1、數(shù)據(jù)庫通過設置父類ID來進行唯一索引,然后使用函數(shù)的遞歸調(diào)用實現(xiàn)無限分類;

  2、數(shù)據(jù)庫設計通過特定格式進行排列,然后使用mysql查詢關鍵函數(shù):concat。程序?qū)崿F(xiàn)比較簡單;

  3、第三種不是太了解, 好像要使用到算法和數(shù)據(jù)結(jié)構(gòu)進行排列。

今天我主要分享下第二種方式,一開始也是找了很多資料,確實比較難理解。不過最終還是給搞明白了,因此記下隨筆,希望通過這篇文章能夠幫助到大家。

一、數(shù)據(jù)庫設計:  


復制代碼 代碼如下:

--
-- Table structure for table `category`
--
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`catpath` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
--
-- Dumping data for table `category`
--
INSERT INTO `category` (`id`, `catpath`, `name`) VALUES
(1, '0', '網(wǎng)站首頁'),
(2, '0-1', 'Linux OS'),
(3, '0-1', 'Apache服務器'),
(4, '0-1', 'MySQL數(shù)據(jù)庫'),
(5, '0-1', 'PHP腳本語言'),
(6, '0-1-2', 'Linux 系統(tǒng)教程'),
(7, '0-1-2', 'Linux 網(wǎng)絡技術'),
(8, '0-1-2', 'Linux 安全基礎'),
(9, '0-1-2-7', 'Linux LAMP'),
(10, '0-1-3-10', 'apache Server');

這里說明下,catpath的-鏈接符號不是固定的,可以選擇,;等特殊符號。
二、 PHP代碼實現(xiàn):
復制代碼 代碼如下:

$conn = mysql_connect ( 'localhost', 'root', '' );
mysql_select_db ( 'test', $conn );
mysql_query ( 'set names UTF8' );
$sql = "select id,concat(catpath,'-',id) as abspath,name from category order by abspath";
$query = mysql_query ( $sql );
while ( $row = mysql_fetch_array ( $query ) ) {
/**
* 第一種展示方法
*/
/*$space = str_repeat ( '    ', count ( explode ( '-', $row ['abspath'] ) ) - 1 );
echo $space . $row ['name'] . '<br>';*/
/**
* 第二種展示方法
*/
$space = str_repeat ( '&nbsp;&nbsp;&nbsp;&nbsp;', count ( explode ( '-', $row ['abspath'] ) ) - 1 );
$option .= '<option value="' . $row ['id'] . '">' . $space . $row ['name'] . '</option>';
}
echo '<select name="opt">' . $option . '</select>';

上效果圖:

    

這里有幾個關鍵的地方需要注意下:
 1、在數(shù)據(jù)庫查詢字段是用了concat函數(shù),不了解的地方可以google下。 
 2、第二個地方主要是用到了php中的str_repeat巧妙的設置了空格。
有錯誤之處,望mail: chenghuiyong1987@gmail.com或者留言

相關文章

  • PHP常見的序列化與反序列化操作實例分析

    PHP常見的序列化與反序列化操作實例分析

    這篇文章主要介紹了PHP常見的序列化與反序列化操作,結(jié)合實例形式分析了php使用serialize()及unserialize()進行序列化與反序列化相關操作技巧及注意事項,需要的朋友可以參考下
    2019-10-10
  • PHP zlib擴展實現(xiàn)頁面GZIP壓縮輸出

    PHP zlib擴展實現(xiàn)頁面GZIP壓縮輸出

    GZIP(GNU-ZIP)是一種壓縮技術。經(jīng)過GZIP壓縮后頁面大小可以變?yōu)樵瓉淼?0%甚至更小。這樣用戶瀏覽的時候就會感覺很爽很愉快!
    2010-06-06
  • 從PHP的源碼中深入了解stdClass類

    從PHP的源碼中深入了解stdClass類

    這篇文章主要介紹了從分析PHP的源碼角度深入了解stdClass類,并總結(jié)了stdClass類到底是是什么,需要的朋友可以參考下
    2014-04-04
  • php刪除txt文件指定行及按行讀取txt文檔數(shù)據(jù)的方法

    php刪除txt文件指定行及按行讀取txt文檔數(shù)據(jù)的方法

    這篇文章主要介紹了php刪除txt文件指定行及按行讀取txt文檔數(shù)據(jù)的方法,涉及php針對txt文件的按行讀取、刪除等操作技巧,需要的朋友可以參考下
    2017-01-01
  • 談談PHP連接Access數(shù)據(jù)庫的注意事項

    談談PHP連接Access數(shù)據(jù)庫的注意事項

    有的時候需要用php連接access數(shù)據(jù)庫,結(jié)果整了半天Access數(shù)據(jù)庫就是連接不上,查找很多資料,以下是些個人經(jīng)驗,希望能給需要連接access 數(shù)據(jù)的人帶來幫助。
    2016-08-08
  • php復制文件后改名的實例代碼

    php復制文件后改名的實例代碼

    在本篇文章里小編給大家整理的是一篇關于php復制文件后改名的方法及相關內(nèi)容,有興趣的朋友們可以學習下。
    2021-09-09
  • php代碼架構(gòu)的八點注意事項

    php代碼架構(gòu)的八點注意事項

    這篇文章主要介紹了php代碼架構(gòu)的八點注意事項,較為全面的分析總結(jié)了基于面向?qū)ο蟪绦蛟O計的代碼架構(gòu)設計問題相關注意事項,需要的朋友可以參考下
    2016-01-01
  • 推薦學習php sesson的朋友必看PHP會話(Session)使用入門

    推薦學習php sesson的朋友必看PHP會話(Session)使用入門

    對比起 Cookie,Session 是存儲在服務器端的會話,相對安全,并且不像 Cookie 那樣有存儲長度限制,本文簡單介紹 Session 的使用。
    2008-08-08
  • ThinkPHP Where 條件中常用表達式示例(詳解)

    ThinkPHP Where 條件中常用表達式示例(詳解)

    下面小編就為大家?guī)硪黄猅hinkPHP Where 條件中常用表達式示例(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • PHP注釋實例技巧

    PHP注釋實例技巧

    php注釋一般我們在調(diào)試程序過程中,經(jīng)常需要將不需要執(zhí)行的或?qū)τ诔绦蚝瘮?shù)的一些解釋都用的到,下面是一些常用的總結(jié)
    2008-10-10

最新評論

商丘市| 滨州市| 那坡县| 大新县| 庐江县| 桑日县| 额敏县| 北流市| 扶绥县| 平果县| 兴化市| 泊头市| 银川市| 汝阳县| 双鸭山市| 武乡县| 淮阳县| 光泽县| 武强县| 马尔康县| 瑞丽市| 绍兴市| 阳春市| 沂源县| 宜良县| 汽车| 呼和浩特市| 赤城县| 宜昌市| 保德县| 秀山| 长宁区| 方城县| 莱阳市| 始兴县| 长宁县| 罗定市| 丰原市| 柳林县| 白朗县| 枝江市|