-3

好的,所以在我的 SQL 数据库中,我有一个用户列表,有些是普通用户,有些是版主、管理员等,我的表中有一个列显示他们的状态:0 = 普通用户,1 = 管理员,2 = 管理员等等。根据他们在我网站上的状态,我如何在我的网站上在他们的名字旁边显示某个彩色星?

例如,作为用户列表: Sw0rdX [Red Star] (Admin) Lyoco [Blue Star] (Moderator) PMDude (Normal User)

我以前在一些网站上看到过这个,但我不太确定如何实现这一点。任何帮助,将不胜感激。谢谢。

4

6 回答 6

3

你有两个选择,要么是条件语句,要么是一些巧妙的图像命名。

条件语句 (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

这是一个相当基本的方法。我还没有测试过这段代码,但希望你能明白……

<?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 回答
0

只需检查它们的状态,然后做一些 if/elseif 或 switch 函数来写你想要的

于 2013-07-22T13:27:26.677 回答
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($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 回答