Iwebshop体验与获取模板中query结果数量的方法 - sbw Blog

Iwebshop体验与获取模板中query结果数量的方法

来源: 石博文博客 | 浏览: 9980 | 评论: 2 发表时间: 2013-07-19

iwebshop是一款面向独立卖家的单用户开源网店系统,基于PHP+MySQL框架开发,通过它可以迅速建立起一个B2C网上商城。在iwebshop官网的介绍中说此系统是基于专业的MVC开发模式.但是在我为此系统编写模板时发现,iwebshop系统还是有不少设计缺陷,其中尤以query结果集信息过少最为严重!



糟糕的iwebshop开发体验

先不说iwebshop的开发文档有多么简单(我拿到的是以前付费商户购买时iwebshop送的开发文档),虽然iwebshop号称mvc开发模式,但也只是在内部结构上满足了mvc模式,其中,开发文档在讲到模板制作时,讲了两种添加页面的方法,即使用控制器和添加模板文件.无论从discuz的模板系统还是thinkPHP的模板系统来看,实现模板页面都是要前台/后台合作来完成的,而iwebshop确没有在这里好好考虑.这就导致了前台并不能很好的使用后台所准备的数据,后台也不能多元化的调用前台页面.所以,在iwebshop的示例中,他就"隆重推荐""完全"使用模板来开发.其中,最大最大的表现就是----数据库查询居然是在前台模板文件中写的!!


开发文档在讲到模板标签时,有这样的一段话:"以上的标签存在着一个很大缺点就是,如果美工在开发与调试页面的时候,都会受到标签的干扰,使美工不易于开发,再一个对程序人员来说,对于每一个属性也没必要去写那些没有必要的引号,鉴于以上情况标签格式定义如下".


没错!复杂的模板符号确实给前台美工带来不便..可是...可是...把一大串sql语句放在前台模板文件中就真的不会影响美工了吗?


iwebshop模板

而且,mvc模式就是为了前台后台分离,这样做还是把数据与控制带到了前台,为什么不能在.php文件中做好数据的查询呢!


于是,基于这样鸡肋的数据库查询方式,一个重大问题出现了...


商店系统,总都是分块显示的,假如一行约定显示4个商品,若总共5个商品,那么为了美观,就应该显示一排,等数据多于8个时,再显示成两排,没错吧?可就这样一个简单的需求,用iwebshop就很难实现,因为在他的query查询结果集中,根本就没有一点行列数量等各种数据,有的只是对象化了的sql语句而已~~


于是我开启了google,网上一搜,这样的需求还真不少,官方的开发者论坛就有几个帖子问这个问题.可是,iwebshop的社区真是冷的没话说,2011年的这个帖子到现在也木有人回,好吧!那就只能自己来了!


我的实现方法是这样的:

先用count(*)取出所有的结果数量,然后向下取到3或者4(取决于一行显示几个)的倍数,然后再做一次query,limit前面的数量.这样就能控制版面的整齐了.不过,多做了一次至少有一个连接的sql查询,实在是天大的浪费.


下面是一个遍历所有模块,并且按一行3个显示各个模块下商品的代码示例.




相关文章
  • 声明: 评论属于其发表者所有,不代表本站的观点和立场.
  • 路人甲 回复该留言 时间: 2018-05-19

    很有用

已有 1 位网友发表了一针见血的评论,你还等什么?
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml