0

我有根据单个变量生成用户导航的代码,用户部门 id,这是在他们在网站上注册时选择的。

我查询用户个人资料以获取扇区 ID。

使用此扇区 ID,我在此扇区 ID 上执行大量 switch 语句(问题),然后将值推送到导航数组,然后导航数组。

由于我有 40 个或更多扇区,因此这个 switch 语句变得庞大且非常混乱。

有没有办法整理这段代码?也许是 MySQL 解决方案或任何替代方案?

这是我实现的一个案例,想象它大 50 倍:

switch($sectorid){
 //SECTOR HEADING- SECTORS
    case '9322938ef17ecfe2db3ed25738ed2debca78b9f4':
    case '94ab631f251624ef0a05485961c6f95f38767bbf':
    case '7e0c4c8f07128ea0cc5c5c9884242fcd4565bc72':
    case 'b32dd88a8baf60026fc01e1b0c10fc3371af0880':
    case '2f4d1285c7e0ebe8c448a87142e9d9d5aca0c0a6':
    case '5dc9d9a34c1cd4304c308a9a14189ea01110e85e':
    case '7e3201c9cab00bfe134f0e9277a8bbe16030440d':
    case '949d9ab17fc3f3e5af6db0dfcec6fc7fafa2b11f':
    case 'ef9839efe7b6d780b05fd332ca430a6a8f0c1606':
    case '526cb8abe2b45bb5ead83834310001f683491c0c':
        $key_array = array('catalogue',         'news',         'product_stories',          'staff');
        $url_array = array($d.'catalogue/',      $d.'news/',    $d.'product_stories/',      $d.'staff/');
        $name_array = array('Catalogue',         'News',        'Product Stories',          'Staff');
        break;  
}

所以是的,它占用了大量的编码,我个人认为这样做很单调。

谁能看到更好的方法来实现这一点?

干杯

克里斯

4

1 回答 1

0

我有一种实现,但我在一个方面很挣扎,

这是建议的数据库结构:

nav_link_table - sector entry

id      sectorid        nav_id

nav_table - nav entry

id      name    key     url     name

所以我可以将许多 nav_table 字段添加到 nav_link_table 中的扇区

但问题是如何使导航条目的顺序自定义到该部门?

于 2013-04-11T12:17:49.210 回答