下拉菜单中的自定义订单SQL值

时间:2014-06-02 09:16:11

标签: php sql drop-down-menu sql-order-by

我需要一些帮助在下拉菜单中排序值,因为我似乎无法正确处理myslef。

基本上,我在下拉菜单中从SQL加载大约一百个值,此时我正在使用此语句进行排序:

ORDER BY CASE WHEN title= 'Other' THEN 1 ELSE 0 END, title ASC";

所以现在这些值按字母顺序显示:

AAAA
BBBB
CCCC
....
....
Other

我需要做的是在下拉列表中给出前4个位置的几个值,然后有一个像“------”这样的栏,然后显示剩下的值,将“其他”放在“其他”位置再次见底:

BBBB
DDDD
HHHH
TTTT
----
AAAA
CCCC
EEEE
....
....
Other

我会反馈任何反馈,谢谢!

2 个答案:

答案 0 :(得分:0)

您将需要一个订购栏。否则,您需要一个视图,为您提供订购号。

的内容
CREATE VIEW myView(ord,title) AS
    SELECT 1,"BBBB" FROM Table1
    UNION
    SELECT 2,"DDDD" FROM Table1
    UNION
    SELECT 3,"HHHH" FROM Table1
    UNION
    SELECT 3,"TTTT" FROM Table1
    UNION
    SELECT 5,"----" FROM Table1
    UNION
    SELECT 6,title FROM Table1 WHERE title NOT IN ("BBBB","DDDD","HHHH","TTTT")
    UNION
    SELECT 7,"Other" FROM Table1;

然后您可以SELECT * FROM myView ORDER BY ord, title ASC。如果被选中,你将不得不处理“----”。

答案 1 :(得分:0)

  1. 按字母顺序将DB中的所有值加载到PHP数组或
  2. 从数组中删除“特殊值”
  3. 构建一个新阵列,首先添加自定义4,然后是阵列中的所有内容,最后是“其他”
  4. 使用新阵列创建下拉列表
  5. 而不是“---”,您可以使用optgroup