Admin Stars Next To Name - PHP


Admin Stars Next To Name - PHP

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

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

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

您有两个选项,一个是条件语句,另一个是巧妙的图像命名。

条件语句(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" />';

使用文件命名选项,您基本上可以创建具有相同名称的星形图像,并且只有状态号作为名称的唯一区别,然后当您回显状态号时,它将显示该状态的正确星形

您可以这样做,然后使用样式使星形成为您想要的颜色。

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;
}

只需检查它们的状态,然后制作一些if/elf或switch函数来编写您想要的

这个答案假设您对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;
} ?>

这样做:

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是当前用户状态。

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

<?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);
?>