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

首頁 > 開發 > PHP > 正文

php中無限級分類程序代碼

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

無限分類就像windows下新建一個文件夾,在新建的文件夾下又可以新建一個文件夾,這樣無限循環下去,無限分類也是這樣,父類可以分出它子類,子類又可以分出它的子類,這樣一直無限循環下去

  1. -- 
  2. -- 數據庫: `tree` 
  3. -- 
  4. CREATE DATABASE `tree` DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci; 
  5. USE `tree`; 
  6.  
  7.   
  8. -- 
  9. -- 表的結構 `class
  10. -- 
  11.   
  12. CREATE TABLE `class` ( 
  13.   `id` int(11) NOT NULL auto_increment, 
  14.   `name` varchar(10) NOT NULL, 
  15.   `pid` int(11) NOT NULL, 
  16.   `depth` varchar(100) default '0'
  17.   PRIMARY KEY  (`id`) 
  18. ) ENGINE=MyISAM  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=30 ; 
  19.   
  20.  
  21. <?php 
  22. $link =mysql_connect('localhost','root','root'); 
  23. mysql_select_db('tree'); 
  24. mysql_query ( 'set names GBK' ); 
  25. if($_GET['act']=='add'){ 
  26.    $name=$_POST['name']; 
  27.    if($name==''exit('name not null'); 
  28.       $pid=$_POST['pid']; 
  29.           if($pid !=0){ 
  30.              $sql="select * from class where id=".$pid
  31.              $result =mysql_query($sql); 
  32.              $row = mysql_fetch_array($result); 
  33.              $depth=$row['depth'].','.mysql_insert_id();//$getID即為最后一條記錄的ID 
  34.           }else
  35.              $depth=0;  
  36.        } 
  37.     $sql="INSERT INTO class(name,pid,depth) VALUES('".$name."','".$pid."','".$depth."')"
  38.     $result =mysql_query($sql); 
  39.        if(!$result){ 
  40.           exit("shibai $sql"); 
  41.        }else
  42.           exit("chenggong"); 
  43.     } 
  44. ?> 
  45. <form id="form1" name="form1" method="post" action="?act=add"
  46.   <table width="327" border="1" cellpadding="0" cellspacing="0"
  47.     <tr> 
  48.       <td width="97" height="27">名稱</td> 
  49.       <td width="224"><label for="name"></label> 
  50.       <input type="text" name="name" id="name" /></td> 
  51.     </tr> 
  52.     <tr> 
  53.       <td height="30">欄目</td> 
  54.       <td><select name="pid" id="pid"
  55.             <option value="0">-----頂級分類-----</option> 
  56.             <?php 
  57.              sort_s(0); 
  58.    ?> 
  59.       </select></td> 
  60.     </tr> 
  61.     <tr> 
  62.       <td height="35">&nbsp;</td> 
  63.       <td><input type="submit" name="button" id="button" value="提交" /></td> 
  64.     </tr> 
  65.   </table> 
  66. </form> 
  67. <br /> 
  68. <br /> 
  69. <br /> 
  70. <br /> 
  71. <?php 
  72. //$sql = "select * from `class` order by sort asc, id Desc"; 
  73. //$sql="select * from class where pid=0"; 
  74. //$result =mysql_query($sql); 
  75.  //while($row = mysql_fetch_array($result)){ 
  76.   //$class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']); 
  77.     // echo $row['name'].$row['id'].'---'.$row['pid'].'<br>';  
  78.         sorttree(0); 
  79.   
  80.     
  81.  //} 
  82.   
  83. function sorttree($id){ 
  84.  //if() 
  85.  $sql="select * from class where pid=".$id
  86.     $result =mysql_query($sql); 
  87.  //$a=mysql_fetch_array($result); 
  88.  //$row = mysql_fetch_array($result); 
  89.  while($row = mysql_fetch_array($result)){ 
  90.     $rid=explode(",",$row['depth']); 
  91.     $i=count($rid); 
  92.     $n = str_pad('',$i,'-',STR_PAD_RIGHT); 
  93.     $n = str_replace("-","&nbsp;&nbsp;&nbsp;&nbsp;",$n); 
  94.  //print_r($row).'<br>'; 
  95.     if($row['pid']==0){ 
  96.        echo $n.'|-----'.$row['name'].'-----|<br>'
  97.     }else
  98.        echo $n.'&nbsp;&nbsp;&nbsp;&nbsp;<font color="#FF0000">|-</font>'.$row['name'].'<br>';  
  99.        } 
  100.     sorttree($row['id']); 
  101.  } 
  102. function sort_s($id){ 
  103.  //if() 
  104.  $sql="select * from class where pid=".$id
  105.     $result =mysql_query($sql); 
  106.  //$a=mysql_fetch_array($result); 
  107.  //$row = mysql_fetch_array($result); 
  108.  while($row = mysql_fetch_array($result)){ 
  109.     $rid=explode(",",$row['depth']); 
  110.     $i=count($rid); 
  111.     $n = str_pad('',$i,'-',STR_PAD_RIGHT); 
  112.     $n = str_replace("-","&nbsp;&nbsp;&nbsp;&nbsp;",$n); 
  113.  //print_r($row).'<br>'; 
  114.     if($row['pid']==0){ 
  115.         echo "<option value="".$row['id']."" style='background:#ccc' >".$n.'|------'.$row['name']."-----|</option>rn"
  116.     }else
  117.         echo "<option value="".$row['id']."">".$n.'&nbsp;&nbsp;&nbsp;&nbsp;|- '.$row['name']."</option>rn";  
  118.     } 
  119.     sort_s($row['id']); 
  120.  } 
  121. ?> 

 

總結原理:如何把它的各個分類一一列出來呢?

首先我們假設有這樣的一個三級分類,新聞→PHP新聞→PHP6.0出來了。

如果我們要查找“PHP6.0出來了”這條新聞,我們先點擊新聞,然后再點擊PHP新聞

就可以查出來了,也就是說我們可以通過祖父類一級一級地往下找,反過來我們只要
知道一個子類的父類,就可以把它查找出來了。這樣我們在設計數據庫時就可以多設
計一個父類id的字段就可以實現無限分類的功能了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉南县| 泰和县| 堆龙德庆县| 金华市| 麻阳| 固阳县| 建昌县| 澜沧| 深圳市| 枣庄市| 淳化县| 上栗县| 谢通门县| 吉木乃县| 瑞安市| 阳信县| 彭州市| 东兴市| 色达县| 南皮县| 乐昌市| 丹寨县| 彭阳县| 彰化县| 南华县| 宣恩县| 饶阳县| 定日县| 巴东县| 富蕴县| 林州市| 金沙县| 林甸县| 元阳县| 稷山县| 白城市| 松阳县| 北宁市| 敖汉旗| 深圳市| 五台县|