好的,在我的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);
?>