国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP 無限分類三種方式 非函數的遞歸調用!

2024-05-04 23:17:17
字體:
來源:轉載
供稿:網友

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

  1、數據庫通過設置父類ID來進行唯一索引,然后使用函數的遞歸調用實現無限分類;

  2、數據庫設計通過特定格式進行排列,然后使用mysql查詢關鍵函數:concat。程序實現比較簡單;

  3、第三種不是太了解, 好像要使用到算法和數據結構進行排列。

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

一、數據庫設計:  

PHP 無限分類三種方式 非函數的遞歸調用!


復制代碼 代碼如下:


--
-- 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', '網站首頁'),
(2, '0-1', 'Linux OS'),
(3, '0-1', 'Apache服務器'),
(4, '0-1', 'MySQL數據庫'),
(5, '0-1', 'PHP腳本語言'),
(6, '0-1-2', 'Linux 系統教程'),
(7, '0-1-2', 'Linux 網絡技術'),
(8, '0-1-2', 'Linux 安全基礎'),
(9, '0-1-2-7', 'Linux LAMP'),
(10, '0-1-3-10', 'apache Server');


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

復制代碼 代碼如下:


$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 ( '    ', count ( explode ( '-', $row ['abspath'] ) ) - 1 );
$option .= '<option value="' . $row ['id'] . '">' . $space . $row ['name'] . '</option>';
}
echo '<select>' . $option . '</select>';


上效果圖:

PHP 無限分類三種方式 非函數的遞歸調用!

    

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高唐县| 盘山县| 太仆寺旗| 浦北县| 淮安市| 郯城县| 大冶市| 兰考县| 贵港市| 朝阳区| 浦城县| 浦北县| 芜湖市| 东港市| 迁西县| 隆林| 察隅县| 宁武县| 纳雍县| 安吉县| 灵宝市| 柘荣县| 和田县| 南京市| 陆良县| 固原市| 磐石市| 高密市| 平谷区| 宁武县| 陕西省| 恩平市| 厦门市| 渑池县| 文化| 邵东县| 南涧| 当涂县| 武鸣县| 德阳市| 都匀市|