-2

コードの最後のブロックは私の問題です。ユーザーが表示しているページに応じて、異なるスタイルのリンクを表示できるようにしたいと思います。リンクは、SQLテーブル自体からのifelseステートメントになります。ここで最大の問題は、リンクをプルするためにすでにエコー変数を使用しているという事実です。そのため、SQLテーブル自体の内部でifelseを再開する方法がわかりません。

<?php   
    $result=mysql_query("SELECT * FROM navigation WHERE enabled='1');
            while ($row=
            mysql_fetch_array($result))
                {

                echo $row['link'];

                }
?>

私が表示したいのは、

<?php   
    $result=mysql_query("SELECT * FROM navigation WHERE enabled='1' AND permissions >'1'");
            while ($row=
            mysql_fetch_array($result))
                {

                echo $row['link'];

                }

My Variable for Enabledは1であるため、変数が0に設定されている場合、ページは無効になります。この後、を使用してユーザー権限を検索します

if ($admin != null)//Is Guest
if ($admin->get_permissions()==3)//Is Admin
elseif ($admin->get_permissions()==2)//Is VIP User
elseif ($admin->get_permissions()==1)//Is Registered User

リンクを登録ステータスに基づいてユーザーにのみ表示したいのですが、私の最大の問題はここにあります。ユーザーにページに応じて特定の方法でナビゲーションを表示させたいのですが、SQLテーブルは既にクエリされており、変数としてインポートされているので、次の行に沿って表示するにはどうすればよいですか?

<?php
if (stripos($_SERVER['REQUEST_URI'], 'index.php')){
     echo '<p><a href="index.php" class="active">Home</a></p>';
}
else{
     echo '<p><a href="index.php">Index</a></p>';//<-Note the removed class index in this link
}

私が言っていることが理解しにくい場合は申し訳ありません。私の能力の限りを尽くしてそれを言葉にしようとしました。

4

1 に答える 1

4

Have you tried NOT combining the query and doing something along the lines of:

<?php
    $result=mysql_query("SELECT * FROM navigation WHERE enabled='1'");
    if ($result){
        while ($row=mysql_fetch_array($result)) {
            switch($row['permission']){
                //obv not real html tags!!!
                case 1: echo "<reg>".$row['link']."</reg>"; break; 
                case 2: echo "<vip>".$row['link']."</vip>"; break; 
                case 3: echo "<admin>".$row['link']."</admin>"; break;
                default: echo "<blank>no link</blank>"; break;
            }
        }
    }
?>
于 2012-10-12T22:06:10.730 に答える