【问题标题】:PHP database array specific order [duplicate]PHP数据库数组特定顺序[重复]
【发布时间】:2014-07-22 20:40:53
【问题描述】:

我的网站上有一个页面,它以 3x3 平铺布局显示产品类别。

目前,我正在从数据库中获取不同的产品类别,并遍历返回的数组以显示 9 个图块。

这一切都很好,但瓷砖的当前顺序是按字母顺序排列的。客户刚回来要求按非常具体的顺序订购它们,我一遍又一遍地困惑如何实现这一点。

当前订单:

Agri, Bespoke, Dairy, Farm, Forest, General, Grain, One off, Red Meat

想要订购:

Dairy, Red Meat, Forest, Grain, General, Farm, Bespoke, One off, Agri

有人可以为我指出正确的方向吗?实现这一目标需要什么?

【问题讨论】:

  • 以正确的顺序向您的数据库添加一列;然后按该列排序
  • 我使用的是 Silverstripe CMS/Framework,因此添加列并不是那么简单。可以这么说,也不仅仅是一个类别表。产品表只有一个类别列。

标签: php arrays sorting


【解决方案1】:

我的理解是,除非另有说明,否则数据库将按照添加的顺序返回数据。

您可以在查询末尾添加ORDER BY X 以对它们进行排序。如果不存在可以为您提供该顺序的列,您可以添加这样的列。

【讨论】:

    【解决方案2】:

    我想如果你不能添加一个具有正确顺序的新列,这确实是首选方法,你可以这样做:

    SELECT DISTINCT Category FROM Products
    ORDER BY
    (Category='Dairy') DESC, (Category='Red Meat') DESC, (Category = 'Forest') DESC
    

    ...等等。这是一种非常奇怪的做法,但它似乎可以完成工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      相关资源
      最近更新 更多