新手请教一个关于 MySQL 和 PHP 取值排序的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
swuhvxee
V2EX    问与答

新手请教一个关于 MySQL 和 PHP 取值排序的问题

  •  1
     
  •   swuhvxee 2018-02-01 13:27:43 +08:00 2120 次点击
    这是一个创建于 2885 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在通过 sql 按照时间排序取出最新的 50 条商品数据, 然后 while 输出这 50 条商品信息。

    同时,需要取出这 50 条中点击量最高的 1 条或者多条信息,怎么做?

    wayne712
        1
    wayne712  
       2018-02-01 13:49:34 +08:00   1
    遍历 50 条商品信息, 将所有点击量数据存到另外一个数组, 然后对这个点击量数组进行排序, 最后根据已排序的点击量数组下标值反查商品信息数组即可
    swuhvxee
        2
    swuhvxee  
    OP
       2018-02-01 13:55:09 +08:00
    @wayne712 是在 while 中把点击量存入数组进行比较,然后取出最大的吧。我也这么想过,有没有更简单的方法呢
    swuhvxee
        3
    swuhvxee  
    OP
       2018-02-01 13:55:53 +08:00
    @wayne712 因为新手,我也想到了这个办法,总觉得是个笨办法,是我的幻觉还是只能这么解决
    wellCh4n
        4
    wellCh4n  
       2018-02-01 15:11:08 +08:00
    写两条 sql,一条获取 50 条,一条获取 50 条里面点击量最高的那条
    eslizn
        5
    eslizn  
       2018-02-01 15:14:08 +08:00
    点击量有在商品中存储么?有的话 usort 一下就可以了
    zakokun
        6
    zakokun  
       2018-02-01 15:14:46 +08:00
    你要取最新的 50 条,然后这 50 条中拿最高的 N 条

    那自然就是数据库 select 50 个呗,拿出来以后 foreach 排序。 这思路很自然 你还想怎么优化?
    swuhvxee
        7
    swuhvxee  
    OP
       2018-02-01 15:19:01 +08:00
    @eslizn
    @zakokun 这样 usort,foreach 排序会不会打乱原有的 50 条排序
    swuhvxee
        8
    swuhvxee  
    OP
       2018-02-01 15:21:13 +08:00
    @eslizn
    @zakokun
    这个需求确实很蛋疼,又要按照时间排序输出商品列表。
    又要输出其中这些商品的热门商品
    swuhvxee
        9
    swuhvxee  
    OP
       2018-02-01 15:46:07 +08:00
    此问题已解决。感谢解惑
    b821025551b
        10
    b821025551b  
       2018-02-01 15:47:05 +08:00
    这个需求本身就很矛盾吧。。。。
    swuhvxee
        11
    swuhvxee  
    OP
       2018-02-01 15:52:50 +08:00
    @b821025551b 不矛盾啊,时间排序和热门排序本身就不矛盾。。。关键是我在练习这个项目中,不想额外添加 sql,因为不知道是否可以在一个动作内解决
    zakokun
        12
    zakokun  
       2018-02-01 16:02:14 +08:00
    @swuhvxee 你用个新的数组处理排序啊, 这种需求很正常吧,多做做就好 比如很多的最新 50 个的榜单,然后给这 50 个中最热门的标记一个『最热』之类的,正常
    swuhvxee
        13
    swuhvxee  
    OP
       2018-02-01 16:18:28 +08:00
    @zakokun 我也是这么做的,把点击量放到一个数组里比较然后找出下标来判断了。感谢你的回答
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4708 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 05:39 PVG 13:39 LAX 21:39 JFK 00:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86