一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Phpcms V9 get语句进行多条件数据的调用例子

时间:2015-05-07 编辑:简简单单 来源:一聚教程网


在phpcms中get语句是比较灵活的条件语句了,当使用phpcms自带标签调用不了的数据,我们都可以使用get语句来进行直接 sql 的调用,这在多级数据的调用上,使用的是比较普遍了的,尤其是自定义的条件数据。
先来看一个phpcms普通的pc标签调用数据代码:


{pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page"}
       


    {loop $data $r}
  • {date('Y-m-d H:i:s',$r[inputtime])}·{$r[title]}

  • {if $n%5==0}
  • {/if}
    {/loop}
           

       
{$pages}

{/pc}

这个就是普通的不能再普通的数据调用方式了,假如我们再来调用一个模型中的产品,而且又有 where 条件的情况下,代码则如下:


{pc:content action="lists" catid="6" moreinfo="1" where="function=1" num="8" order="id DESC"}
{loop $data $r}

  • ·{str_cut($r[title],64)}

  • {/loop}
    {/pc}

    注意看 where=”function=1″ 这一条件,其中 content 里面的这些个参数都算得上是另一个 sql 的条件筛选式了,我们可以将上面的直接搞成 get 进行直接的调用,代码如下:


    {pc:get et sql="select * from xiariboke_pictures where catid=6 and function=1 order by id desc" rows="8" return="data"}
    {loop $data $r}

  • ·{str_cut($r[title],64)}

  • {/loop}
    {/pc}

    这样是不是显得更方便一些呢,当然,如果像这样简单的调用夏日博客还是建议使得 pc 标签的,但如果遇到更复杂的条件语句呢,显然,使用 get 语句就更方便一些了,呵呵,看个人的需要吧,想我一样偷点懒的童鞋就直接 get 语句吧,get 唯一的优点就是其扩展性很强大,可以组合各种各样的 sql 条件语句,这一点来说的话,pc 就有点弱了。


    如果前端模板要按用途来调用产品列表,把用途作为Tab,一个Tab显示一个用途,应该怎么来定义这个数据?

    首先,我们在模型中添加一个字段为“function”作为用途,采用下拉选项菜单的方式,预先定义好几个用途可选,假定这几个选项的字段ID为1、2、3、4。

    那么可以用下面的代码调用“function”字段ID为1这一用途的产品:

    {pc:content action="lists" catid="6" moreinfo="1" where="function=1" num="8" order="id DESC"}
    {loop $data $r}

  • ·{str_cut($r[title],64)}

  • {/loop}
    {/pc}

    这样,就可以出栏目ID为6这一产品栏目(图片模型)用途ID为1的8个产品。

    同样的道理,你也可以使用GET语句来做到这一调用:

    {pc:get et sql="select * from cmsyou_pictures where catid=6 and function=1 order by id desc" rows="8" return="data"}
    {loop $data $r}

  • ·{str_cut($r[title],64)}

  • {/loop}
    {/pc}

    需要注意的是,上面的代码是通过GET语句,指定了数据库的表头cmsyou_pictures,于是你在使用的时候,要根据表头和模型所在的分表来自定义修改。

    举一反三,可以看到GET调用与MYSQL调用语句的方式相似,那么可以根据这个来做多重条件筛选。上面的第一句是:
    {pc:get et sql="select * from cmsyou_pictures where catid=6 and function=1 order by id desc" rows="8" return="data"}
    其中条件使用了上面使用了Where进行筛选,当满足catid=6和function=1两个条件的时候就进行调用,如果要更多层条件筛选,大家可以尝试多个and或者or并从。

    热门栏目