0

単一の変数、ユーザー セクター ID に応じてユーザー ナビゲーションを生成するコードがあります。これは、ユーザーがサイトにサインアップするときに選択されます。

ユーザー プロファイルをクエリして、セクター ID を取得します。

このセクター ID を使用して、このセクター ID に対して大規模な switch ステートメント (THE PROBLEM) を実行し、値をナビゲーション配列にプッシュして、ナビゲーションを行います。

40 以上のセクターがあるため、この switch ステートメントは巨大で非常に厄介になります。

このコードを整理する方法はありますか? おそらくMySQLソリューションまたは代替案ですか?

これは私が実装したものの 1 つのケースです。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 に答える