更好地实现自定义用户导航

时间:2013-04-11 11:54:35

标签: php navigation switch-statement

我的代码根据单个变量生成用户导航,用户扇区ID,这是在网站上注册时选择的。

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

使用此扇区ID,我会在此扇区ID上执行大量切换语句(THE PROBLEM),然后将值推送到导航阵列,然后进行导航。

由于我有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;  
}

所以是的,它占用了相当多的编码,我个人认为这样做是单调的。

有人能看到更好的方法来实现这个吗?

干杯

克里斯

1 个答案:

答案 0 :(得分:0)

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

这里是建议的数据库结构:

nav_link_table - sector entry

id      sectorid        nav_id

nav_table - nav entry

id      name    key     url     name

所以我可以在nav_link_table

中的扇区中添加许多nav_table字段

但问题是如何将导航条目的顺序定制到扇区?