0

メニューモジュールを使用しており、注文に関してメニューを取得する際に問題に直面しています。

参照用にフィドルを確認してください。

データベース内: PARENTID は、それが親であるかどうかを示します。PARENTID=0 の場合は親メニュー、そうでない場合はサブメニューです。

PARENTLEVEL - レベル 1、2、3、4、5、6 の順序です。

クエリを実行すると、メニューを順番に取得できます。

SELECT * FROM categoryWHERE publish='1' and parentid='0' menuorderASC順

しかし、サブメニューを注文したいとき、注文できません:

SELECT * FROM カテゴリ c 内部結合カテゴリ b on c.parentid = b.parentid where c.publish='1' and c.parentid!='0'

私は試した:

SELECT * FROM カテゴリ p LEFT JOIN カテゴリ c ON c.parentid=p.parentid WHERE p.publish=1 order by p.PARENTID,c.MENUORDER ;

私がしようとしているのは:

私はそのような順序で結果が欲しい:

    1.Home
    2.Settings
          Set Period
          User Type
          Roles
          Region
   .....etc

これで、メニューの順序を整えることができます。メインメニューの下でメニュー/サブメニューを注文するのを手伝ってくれる人はいますか?

前もって感謝します!!

4

1 に答える 1

0

OK、ここで編集されたバージョン:

SELECT p.menuname pmen,c.menuname cmen,
 COALESCE(c.menutype,p.menutype) menutype,
 COALESCE(c.link,p.link) link,
 COALESCE(c.accessgroup,p.accessgroup) accessgroup
FROM category p 
LEFT JOIN category c ON  c.parentid=p.id AND c.publish=1 
WHERE p.publish=1 and p.parentid='0'  
ORDER BY p.menuorder,c.menuorder

結果:

|            PMEN |                    CMEN | MENUTYPE |     LINK | ACCESSGROUP |
---------------------------------------------------------------------------------
|            Home |                  (null) | leftmenu | home.php |           1 |
|        Settings |              Set Period | leftmenu | home.php |           1 |
|        Settings |               User Type | leftmenu | home.php |           1 |
|        Settings |                   Roles | leftmenu | home.php |           1 |
|        Settings |                  Region | leftmenu | home.php |           1 |
|        Settings |                District | leftmenu | home.php |           1 |
|        Settings |                   State | leftmenu | home.php |           1 |
|        Settings |                    City | leftmenu | home.php |           1 |
|  Master Screens |            Product Type | leftmenu | home.php |           1 |
|  Master Screens |      Beneficiary Master | leftmenu | home.php |           1 |
|  Master Screens |        Component Master | leftmenu | home.php |           1 |
|  Master Screens |           Sub-Component | leftmenu | home.php |           1 |
|  Master Screens |              LOT Master | leftmenu | home.php |           1 |
|  Master Screens |           Tender Master | leftmenu | home.php |           1 |
|  Master Screens |         PDI Task Master | leftmenu | home.php |           1 |
| User Management |                    User | leftmenu | home.php |           1 |
| User Management |                    RBAC | leftmenu | home.php |           1 |
| TPI Task Master |                  (null) | leftmenu | home.php |           1 |
|    Transaction  |              Work Order | leftmenu | home.php |           1 |
|    Transaction  |                  Vendor | leftmenu | home.php |           1 |
|    Transaction  |          PDI Inspection | leftmenu | home.php |           1 |
|    Transaction  |          TPI Inspection | leftmenu | home.php |           1 |
|    Transaction  |           DE Inspection | leftmenu | home.php |           1 |
|    Transaction  |           RM Inspection | leftmenu | home.php |           1 |
|    Transaction  | Install & Commissioning | leftmenu | home.php |           1 |
|    Transaction  |         Re-Installation | leftmenu | home.php |           1 |
|    Transaction  |          Bank Guarantee | leftmenu | home.php |           1 |
|    Transaction  |        Initiate Invoice | leftmenu | home.php |           1 |
|        Accounts |        Invoice Approval | leftmenu | home.php |           1 |
|         Reports |                  (null) | leftmenu | home.php |           1 |
于 2013-08-09T10:19:38.900 に答える