关闭

php中商品无限极分类

标签: php无限极分类
335人阅读 评论(0) 收藏 举报
分类:

以下代码是我从网上看视频抄下来的代码(是传智播客老师写的),以备后用。

1、在商品分类模型类中加入下面代码:

                           

class CategoryModel extends Model {
                       
                    public function getAllCategories($stop_id=0){
   //组织sql
                      $sql="select * from {$this->getTableName()} order by c_sort asc";
                      //调用父类方法
                      $categories= $this->query($sql);
                      return $this->noLimitCategory($categories,0,0,$stop_id);
                   }
      
  /*无限极分类
  *@param1 array $categories,需要进行无限极分类的数组
  *@param2 int $parent_id,当前需要查询的顶级分类的id,默认为0,表示顶级分类
  *@param3 int $level 表示当前结果的级别
  *@param4 int $stop_id,需要终止查询的id
  */
                    private function noLimitCategory($categories,$parent_id=0,$level=0,$stop_id=0){
                                      //定义一个静态数组用于保存每次遍历的结果
                                       static $res= array();
                                       //遍历数组进行数据判断
                                       foreach($categories as $value){
                                        //判断数据的父级分类id
                                                  if($value['c_parent_id']==$parent_id){
                                                  //当分类的id不等于自己的id时进行遍历
                                                        if($value['c_id']!=$stop_id){
                                                                $value['level']=$level;
                                                                $res[]=$value;
                                                                //递归点:当前分类有可能有子分类
                                                                 $this->noLimitCategory($categories,$value['c_id'],$level+1,$stop_id);
                                                         }
                                                    }
                                         }
                                         //返回最终的结果
                                         return $res;
                                      }        

}


在thinkPHP模版中调用如下:

 <select name="c_id" >
               <option value="0">请选择分类</option>
               <volist name="data" id="d">
               <option value="{$d.c_id}">{:str_repeat("-",$d["level"] * 4 )}{$d.c_name}</option>
               </volist>
     </select> 

效果如下:

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

PHP实现无限极分类

利用两个for循环实现无限级分类 表: 字段名 字段类型 备注 默认值 id int 主键 auto-increment name varchar 分类名称 pid int 父类id 0 顶级分类的 pid 默认就是0了。当我们想取...
  • u010187139
  • u010187139
  • 2015-07-21 08:58
  • 2934

php无限极分类各种方法总结

php无极限分类 php无极分类 php无极限分类方法 php无限分类方法
  • Simple_Bottle
  • Simple_Bottle
  • 2017-03-30 17:33
  • 731

PHP实现递归无限级分类

在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才...
  • zwrj1130
  • zwrj1130
  • 2017-04-27 21:47
  • 164

php无限极分类组装成分类树的巧妙代码

现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出的数据就是如下的格式: $arr = array( array("id" => 1 , "pid" => 0 , 'c...
  • zhang197093
  • zhang197093
  • 2015-11-21 11:49
  • 3109

php实现无限极分类

php无限极分类 这里首先介绍一下,什么是无限极分类?无限极分类简单点说就是一个类可以分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样那PHP又是如何实现它的无限分类的呢...
  • qq_31648761
  • qq_31648761
  • 2016-11-03 11:59
  • 10372

PHP实现菜单无限极分类

用PHP如何无限极分类一般的项目菜单根据不同的用户,不同的角色登录,显示不同,如果仅仅用if else来判断就显得很笨拙,如果要修改菜单就很麻烦。最好的方法就是把菜单存储在数据库,然后从数据库中取出,遍历出来,显示到页面上。本文章的目的就是查询出来的数据,如何把菜单的韩上下级一 一对应:菜单数据这里...
  • qq_35662795
  • qq_35662795
  • 2017-03-23 21:31
  • 2487

PHP中无限极分类函数的实现

通过引用方式实现无限极分类;通过递归方式实现无限极分类
  • hsd2012
  • hsd2012
  • 2016-05-24 17:49
  • 7746

php只查询一次数据库分类表,实现无限极分类

数据库中字段和记录展示 $db = new Mysql(); $sql = 'select id,pid,name from test order by pid asc'; $result = $db->select($sql); $result 查询出来的数据格...
  • u012906135
  • u012906135
  • 2017-01-17 16:07
  • 3382

无限极分类的数据结构

无限极分类,显而易见,需要使用Tree作为数据结构 最直观的设计是: Class Node{ private $id; private $cid; //略去getter&setter } id:该节点的id cid:该结点的child...
  • bottlewt
  • bottlewt
  • 2016-12-23 20:42
  • 496

PHP无限级分类实现(递归+非递归)

<?php /** * Created by PhpStorm. * User: qishou * Date: 15-8-2 * Time: 上午12:00 */ //准备数组,代替从数据库中检索出的数据(共有三个必须字段id,name,pid) header("conte...
  • qishouzhang
  • qishouzhang
  • 2015-08-02 09:04
  • 15984
    个人资料
    • 访问:333次
    • 积分:15
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行