分析ecmall的model中引用其他model表名称和联接查询

2009-10-11 22:40 来源:www.chinab4c.com 作者:ecshop专家

     ecmall是一个非常好使用的电子商务系统。ecmal中的model对数据库的业务流程进行了优化和封装.

 在ecmall中,你可以在一个model中引用某一个model的表,而且进行联合查询。看以下例子.我们将ecmall商品分类树函数演变成以下结构.

  function get_list($parent_id = -1, $shown = false)
    {
        $conditions = "1 = 1";
        $parent_id >= 0 && $conditions .= " AND gc.parent_id = '$parent_id'";
        $shown && $conditions .= " AND gc.if_show = 1";
  $goods    =& m('goods');
  $sql ="select gc.* , count(g.goods_id) total from ".$this->table." gc, ".$goods->table." g where g.cate_id = gc.cate_id and $conditions group by g.cate_id";
  return $this -> db -> getAll($sql);
  
}

  从这里你可以发现,在gcategory的model中。你可以通过new 一个goods的model对象.来引用goods里面所属的主表。从而达到该目的.最后进行联合查询.

 来源:中国B4C电子商务