-3

さて、私の SQL データベースには、ユーザーのリストがあり、一部は通常のユーザーで、一部はモデレーター、管理者などで、テーブルの列にステータスが表示されています: 0 = 通常のユーザー、1 = Mod、2 = 管理者私のウェブサイトでの彼らのステータスに応じて、私のウェブサイトの名前の横に特定の色の星を表示するにはどうすればよいですか?

たとえば、ユーザー リストとして: Sw0rdX [レッド スター] (管理者) Lyoco [ブルー スター] (モデレーター) PMDude (一般ユーザー)

以前にいくつかの Web サイトでこれを見たことがありますが、これを達成する方法がよくわかりません。どんな助けでも大歓迎です。ありがとう。

4

6 に答える 6

3

条件付きステートメントか、少し巧妙な画像命名の 2 つのオプションがあります。

条件ステートメント (IF)

if($user['status'] == 0) {
    echo '<img src="normaluser.png" />';
} else if($user['status'] == 1) {
    echo '<img src="moduser.png" />';
} else if($user['status'] == 2) {
    echo '<img src="adminuser.png" />';
}

条件ステートメント (スイッチ)

switch($user['status']) {

 case 0: echo '<img src="normaluser.png" />'; break;
 case 1: echo '<img src="moduser.png" />'; break;
 case 2: echo '<img src="adminuser.png" />'; break;
}

ファイル名

echo '<img src="userimage_'.$user['status'].'.png" />';

ファイル命名オプションを使用すると、基本的にすべて同じ名前で星の画像を作成し、名前の唯一の違いとしてステータス番号を付けます。ステータス番号をエコーすると、そのステータスの正しい星が表示されます

于 2013-07-22T13:32:46.600 に答える
1

このようなことを行ってから、スタイルを使用して星を希望の色にすることができます。

if ($status == 2){
    echo "<span class='gold'>*</span>".$name;
} elseif($status = 1) {
    echo "<span class='red'>*</span>".$name;
} else {
    echo $name;
}

画像を表示したい場合:

if ($status == 2){
    echo "<img src="images/gold_star.gif" alt="gold star"/>".$name;
} elseif($status = 1) {
    echo "<img src="images/red_star.gif" alt="red star"/>".$name;
} else {
    echo $name;
}
于 2013-07-22T13:31:34.533 に答える
0

この回答は、MVC アーキテクチャを明確に理解し、ZendFramework の表記法で説明されていることを前提としています。自明であることを願っています。

コントローラーで、表示するユーザーのデータを取得し、データセットをビューに渡します。

function someAction() {
     $profile = $this->getProfileData(1);
     $this->view->assign('profile', $profile);
}

星を表示するビューで、必要なロジックを実行します。理想的には、これは viewHelper を使用して行う必要がありますが、ビューに醜い関数を記述します。

<div><?php echo $this->profile->name; ?> <?php switch ($this->profile->status) {
 case 0:
     echo '<img src="redstart.gif" />';
     break;
 case 1:
     echo '<img src="bluestar.gif" />';
     break;
} ?>
于 2013-07-22T13:31:21.940 に答える
0

それらのステータスを確認してから、if/elseifまたはswitch関数を作成して、必要なものを記述します

于 2013-07-22T13:27:26.677 に答える
0

次のようにします。

if($user_status=="admin")
{
echo "<img sre='http://cdn2.content.compendiumblog.com/uploads/user/a4e707ba-e52c-41ea-b5df-e22be41ea981/521b88f2-74f9-4a03-9122-54f4648c5ebb/Image/517afb724262d61d2d2848b5ef64a346/red_star_left.jpg' />";
}
elseif($user_status=="mod")
{
echo "<img sre'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Blue_Star.svg/240px-Blue_Star.svg.png' />";
}
else
{
echo "Normal user";
}

ここで、$user_status が現在のユーザーのステータスです。

于 2013-07-22T13:38:24.160 に答える
0

これはかなり基本的なアプローチです。このコードはまだテストしていませんが、理解していただけると幸いです...

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
}

$sql = "SELECT username, status from users where login_id = '" . $username . "';
$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row["username"];

    switch ($row['status']) {

        case 2: 
            echo "<img src="redstar.png";
            break;
        case 1:
            echo "<img src="bluestar.png";
            break;

    }

}

mysql_free_result($result);

?>
于 2013-07-22T13:45:20.870 に答える