好的,所以在我的SQL数据库中,我有一个用户列表,一些是普通用户,一些是版主,管理员等,我的表中有一列显示他们的状态:0 =普通用户,1 = Mod, 2 =管理员等。我如何在我的网站上显示他们名字旁边的某个彩色星星,具体取决于他们在我的网站上的状态?
例如,作为用户列表: Sw0rdX [红星](管理员) Lyoco [蓝星](主持人) PMDude(普通用户)
之前我在某些网站上看过这个,但我不太清楚如何实现这个目标。任何帮助,将不胜感激。感谢。
答案 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);
?>