联系官方销售客服

1835022288

028-61286886

开发框架 版主:迅睿框架研发组
如何让列表排序中的字段都生效,做一个综合排序的列表
类型:迅睿CMS 更新时间:2024-01-16 18:31:12 排序字段 {$t.title}

想做个根据(评论平均评分、点赞量、评论量、浏览量、收藏量)综合排序,但是没有效果,order=avgsort,support,hits,comments,favorites 现在是谁在第一个就按谁排序,没有按顺序排序,想问一下,怎么才能让order中的排序字段都生效!让这些排序数量最大的显示到最前面

<ul>
     {module module=brand catid=9 num=10 order=avgsort,support,hits,comments,favorites}
     <li><a href="{$t.url}" title="{$t.title}" target="_blank">{$t.title}</a><span>{$t['support']+$t['hits']+$t['favorites']+$t['comments']+$t['avgsort']}</span></li>
     {/module}
</ul>

image

回帖
  • 小波工作室
    #1楼    小波工作室
    2024-01-15 10:04:50
    Chrome 0
    😅 这个,你先百度搜索下mysql的order by是怎么个排序原理的,然后用order参数来写sql子句
    满意答案
  • 兔子姑娘
    #2楼    兔子姑娘
    2024-01-15 10:57:29
    Chrome 0
    小波工作室 明白了,MySQL的order by排序还是得按照第一个字段的值来顺序排序,那怎么才能比较(评论平均评分、点赞量、评论量、浏览量、收藏量)这些数据的数据和来排序呢?对mysql不太熟,怎么实现这个调用呢?
    image
  • 兔子姑娘
    #3楼    兔子姑娘
    2024-01-15 11:04:51
    Chrome 0
    小波工作室
    SELECT *   
    FROM `dr_1_brand`   
    WHERE `dr_1_brand`.`catid` = 9   
    ORDER BY (support + avgsort + hits + comments + favorites) DESC  
    LIMIT 10;
    sql 是怎么写对吧?怎么才能结合{module}显示出来呢?
  • 兔子姑娘
    #4楼    兔子姑娘
    2024-01-15 12:21:34
    Chrome 0
    小波工作室 按照文档照猫画虎写出来了,我的语法没问题吧!还能更简化吗?
    <ul>
        {php $data=dr_linkage('industry', $t.id);}
        <?php $query=urlencode('SELECT * FROM `dr_1_brand` WHERE `dr_1_brand`.`catid` = 9 AND (`dr_1_brand`.`industry` IN ('.$data.childids.')) ORDER BY (support + avgsort + hits + comments + favorites) DESC LIMIT 10;');?>
              {sql sql='$query'}
                    <li><a href="{$t.url}" title="{$t.title}" target="_blank">{$t.title}</a><span>{$t['support']+$t['hits']+$t['favorites']+$t['comments']+$t['avgsort']}</span></li>
              {/sql}
              {$debug}
    </ul>

    image
  • 兔子姑娘
    #5楼    兔子姑娘
    2024-01-16 18:31:12
    Chrome 0
    @小波工作室:已凑合解决