欢迎访问四季屋资源网

迅睿CMS搜索页排除字段数值为空或者为0的数据方法

频道:建站那些事 日期: 浏览:0

让模块数据按指定字段数值的大小排序,如何排除字段数值为空或者为0的数据呢?

我用文档里面的方法成功实现了,但是他也会显示数值为空的数据,导致从小到大的排序毫无意义。

请问怎么排除为空或者为0的数据,按有数值的数据从小到大来排序?

以下是我现在的代码

<a href="{Router::search_url($params, 'order', 'y2023_asc')}" class="mr20 fll tab posr {if $params.order=='y2023_asc'}on{/if}">排行榜</a>

{search module=MOD_DIR id=$searchid total=$sototal order=$params.order catid=$catid page=1 pagesize=16 urlrule=$urlrule}

具体内容

{/search}

我现在新增了个数字字段,$shuzi,想根据他筛选按从小到大的方式来排列,并排除空值数据,请问具体要怎么实现呢。


用module标签,然后写php接收参数,拼接sql的where条件查询就行

 请问我这个where的条件要怎么写?

字段是yymc2022,排除0或空的数据

我试了几次写的都是报错的结果

你说的是这个自定义代码对吧

{php $where=urlencode("自定义sql条件");}

{module catid=$catid order=yymc2022_asc where=$where}

{/module}

解决方法:

{php $where=urlencode("yymc2022!=0");}

如果你只有这个判断,可以用module标签的 NOT_yymc2022=0,用where是为了方便你拼接其他搜索条件

但是现在有一个问题,他好像只按首位数字来排序,不是按照完整数据来排序,请问要怎么做?比如有数据:1、11、12、3、4

按正常得是:1、3、4这样排序,但是他就是1、11、12、3、4排序,他只按照首位得数字大小来进行排序

因为你的字段是字符串,不是数字,去数据库把字段类型改成int试试,或者删了重新建一下这段,选数字类型,记得先备份在修改



关键词: 迅睿CMS

0 留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。