首先,创建一个DB

  1. CREATE TABLE IF NOT EXISTS `class` (
  2. `id` mediumint(6) NOT NULL AUTO_INCREMENT,
  3. `title` varchar(30) NOT NULL,
  4. `pid` mediumint(6) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8

然后插入数据

  1. INSERT INTO `class` VALUES (1, '品牌女装', 0);
  2. INSERT INTO `class` VALUES (2, '精品男装', 0);
  3. INSERT INTO `class` VALUES (3, '连衣裙', 1);
  4. INSERT INTO `class` VALUES (4, '旗袍', 1);
  5. INSERT INTO `class` VALUES (5, '燕尾服', 2);

数据的结构能够自己去设计

这里采用递归的方法去实现无限极栏目分类

  1. <?php
  2.  
  3. $con = mysql_connect("localhost","root","123456");
  4.  
  5. mysql_query("set names 'utf8'");
  6. mysql_select_db("test");
  7.  
  8. function get_str($id = 0) {
  9. global $str;
  10. $sql = "select id,title from class where pid= $id";
  11. $result = mysql_query($sql);
  12. if($result && mysql_affected_rows()){
  13. $str .= '<ul>';
  14. while ($row = mysql_fetch_array($result)) {
  15. $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>";
  16. get_str($row['id']);
  17. }
  18. $str .= '</ul>';
  19. }
  20. return $str;
  21. }
  22.  
  23. echo get_str(0);
  24.  
  25. ?>

返回一个数组

  1. <?php
  2.  
  3. $con = mysql_connect("localhost","root","123456");
  4.  
  5. mysql_query("set names 'utf8'");
  6. mysql_select_db("test");
  7.  
  8. function get_array($id=0){
  9. $sql = "select id,title from class where pid= $id";
  10. $result = mysql_query($sql);
  11. $arr = array();
  12. if($result && mysql_affected_rows()){
  13. while($rows=mysql_fetch_assoc($result)){
  14. $rows['list'] = get_array($rows['id']);
  15. $arr[] = $rows;
  16. }
  17. return $arr;
  18. }
  19. }
  20. $list = get_array(0);
  21. var_dump($list);?>

第三种分类;将同一个字段的一样的值归为一类,

  1. function Staff_Pay_nen($type,$emp_cd){
  2. $con=dbcon9();
  3. $sql = " ";
  4. $sql .= " SELECT ";
  5. $sql .= " pay_nen ";
  6. if($type == "haken"){
  7. //派遣
  8. $sql .= " FROM ";
  9. $sql .= " tbl_staff_gensen ";
  10. $sql .= " WHERE ";
  11. $sql .= " staff_cd = '".$emp_cd."' AND ";
  12. $sql .= " kokyaku_cd= '000000' AND ";
  13. $sql .= " sagyo_type='0' AND ";
  14. }elseif($type == "syoukai"){
  15. //日々紹介
  16. $sql .= " ,kokyaku_cd ";
  17. $sql .= " FROM ";
  18. $sql .= " tbl_staff_gensen ";
  19. $sql .= " WHERE ";
  20. $sql .= " staff_cd = '".$emp_cd."' AND ";
  21. $sql .= " sagyo_type ='1' AND ";
  22. $sql .= " kokyaku_cd <> '000000' AND ";
  23. $sql .= " pay_nen is not null AND ";
  24. }
  25. if(1 <= date("n",time()) && date("n",time()) <=6){
  26. //処理日前年と処理日当年
  27. $sql .= " pay_nen in (to_char(now(),'yyyy'),to_char(now() + '-1 year','yyyy')) ";
  28. }else if(7 <= date("n",time()) && date("n",time()) <=12){
  29. //処理日当年のみ
  30. $sql .= " pay_nen in (to_char(now(),'yyyy')) ";
  31. }
  32. $sql .= " ORDER BY ";
  33. $sql .= " pay_nen desc ";
  34. $sql .= " ,kokyaku_cd ASC ";
  35. $result=pg_query($sql);
  36. $i = 0;
  37. $test_day = "";
  38. $pay_nen = array();
  39. if($type == "haken"){
  40. //派遣
  41. while($row=pg_fetch_assoc($result)){
  42. $pay_nen[$i] = $row['pay_nen'];
  43. $i++;
  44. }
  45. }elseif($type == "syoukai"){
  46. //日々紹介
  47. while($row=pg_fetch_assoc($result)){
  48. if($test_day == $row['pay_nen']){
  49. $pay_nen[$row['pay_nen']] .= ",".$row['kokyaku_cd'];
  50. }else{
  51. $pay_nen[$row['pay_nen']] = $row['kokyaku_cd'];
  52. }
  53. $test_day = $row['pay_nen'];
  54. }
  55. }
  56. return $pay_nen;
  57. }

这样的显示如下

  1. 品牌女装
  2. 连衣裙
  3. 旗袍
  4. 精品男装
  5. 燕尾服

PHP 实现无限极栏目分类的更多相关文章

  1. Think PHP递归重新排序无限极子分类数组(递归无限极分类)

    Think PHP递归重新排序无限极子分类数组 // 递归重新排序无限极子分类数组 function recursive($array,$pid=0,$level=0){ $arr = array() ...

  2. 夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

    我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是 ...

  3. 谈一次php无限极分类的案例

    作者:白狼 出处:http://www.manks.top/php_tree_deep.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...

  4. PHP无限极分类的几种方法

    导读:项目开发,经常栏目要做到无限极分类,几种方法PHP无限极分类的几种方法 复制代码 代码如下:namespace Util;class Category{static public functio ...

  5. php不使用递归实现无限极分类

    无限极分类常用的是递归,但是比较不好理解,其实可以用数据库path,pid两个字段的设计来实现无限分类的功能 1.数据库设计 通过上图可以看出pid就是该栏目的父id,而path = 父path+pi ...

  6. php无限极分类以及递归(thinkphp)

    php无限极分类: 无限极分类重点在于表的设计: 1在model中: class CatModel extends Model{ protected $cat = array(); public fu ...

  7. js实现无限极分类

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...

  8. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制

    在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...

  9. PHP无限极分类

      当你学习php无限极分类的时候,大家都觉得一个字“难”我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱, ...

随机推荐

  1. 单元测试不是梦,Android+PowerMock系列(1) —— 在Eclipse里搭建测试环境

    单元测试不好搞阿,虽然从TDD角度出发,可测性强的代码很大程度上就代表着好的设计,但是有些情况也是没办法的,比如单例模式,比如Static方法,比如Final类,传统的Mock技术是没办法解决这些问题 ...

  2. awk里的各种坑

    今天又遇到一个,一旦需要定义一个局部数组(awk通过把局部变量定义在函数参数列表来实现局部这一特征)那么这个数组可以正常的操作,但是无法对他取长度,一旦使用length(tempArr)会得到这么一个 ...

  3. 登录远程SQL服务器

    一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务 ...

  4. Node.js教程

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的服务器端平台.Node.js是由瑞恩·达尔在2009年开发的,它的最新版本是v0.10.36. N ...

  5. 【技术贴】解决使用maven jetty启动后无法加载修改过后的静态资源

    如何使用jetty自动热部署修改后的所有文件,比如js,jpg,class等,哇咔咔 太爽啦比tomcat舒服多了. jetty模式是不能修改js文件的,比如你现在调试前端js,发现在myeclips ...

  6. Unity3d 读取网络xml

    Unity3d 读取网络xml Unity3d 读取网络xml,这个xml文件需要不包含BOM信息,可以用UltraEdit打开xml文件,并且另存为的时候,选择不包含BOM的utf-8格式存储!

  7. 【HDOJ】2531 Catch him

    简单BFS.就是要把所有的D点当成一个整体考虑(整体移动). /* 2531 */ #include <iostream> #include <queue> #include ...

  8. Qt入门(13)——Qt的调用退出

    如果我们创建了一个窗口,接下来使这个应用程序在用户让它退出的时候退出. #include <qfont.h>因为这个程序使用了QFont,所以它需要包含qfont.h.Qt的字体提取和X中 ...

  9. POJ 3694 Network(无向图求桥+重边处理+LCA)

    题目大意: 给你一个无向图,然后再给你一个Q代表有Q次询问,每一次加一条边之后还有几座桥.在这里要对重边进行处理. 每次加入一条边之后,在这条搜索树上两个点的公共祖先都上所有点的桥都没了. 这里重边的 ...

  10. 【转】java参数传递(超经典)

    原文网址:http://blog.sina.com.cn/s/blog_4b622a8e0100c1bo.html Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)” ...