管理员明星旁边的名字 - PHP

时间:2013-07-22 13:25:40

标签: php

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

例如,作为用户列表: Sw0rdX [红星](管理员) Lyoco [蓝星](主持人) PMDude(普通用户)

之前我在某些网站上看过这个,但我不太清楚如何实现这个目标。任何帮助,将不胜感激。感谢。

6 个答案:

答案 0 :(得分: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" />';

使用filenaming选项,您基本上可以创建具有相同名称的星形图像,只需将状态编号作为名称中的唯一差异,然后当您回显状态编号时,它将显示正确的星形状态

答案 1 :(得分: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;
}

答案 2 :(得分:0)

只需检查其状态,然后制作一些if / elseif或switch函数来编写您想要的内容

答案 3 :(得分: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;
} ?>

答案 4 :(得分: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,是当前用户的状态。

答案 5 :(得分: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);

?>