我正在使用登录系统,并在其中实施了基本的管理/级别系统。现在水平只是数字(1-9)。但我确实将它们标记为不同的名称或组。例如,1 =成员,2 =支持者,依此类推。我还有一个成员列表,显示上次活动的用户ID,级别和时间。但是它只显示id的数字(如预期的那样)。我的问题是如何设置它以便数字最终在成员列表中显示名称/组? 感谢Advanced,Josh
以下是表格的代码:
<?php
include("include/session.php");
function displayUsers(){
global $database;
$q = "SELECT username,userlevel,email,timestamp "
."FROM ".TBL_USERS." ORDER BY userlevel DESC,username";
$result = $database->query($q);
/* Error occurred, return given name by default */
$num_rows = mysql_numrows($result);
if(!$result || ($num_rows < 0)){
echo "Error displaying info";
return;
}
if($num_rows == 0){
echo "Database table empty";
return;
}
/* Display table contents */
echo "<table align=\"left\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">\n";
echo "<tr><td><b>Username</b></td><td><b>Level</b></td><td><b>Last Active</b></td></tr>\n";
for($i=0; $i<$num_rows; $i++){
$uname = mysql_result($result,$i,"username");
$ulevel = mysql_result($result,$i,"userlevel");
$time = mysql_result($result,$i,"timestamp");
echo "<tr><td>$uname</td><td>$ulevel</td><td>$time</td></tr>\n";
}
echo "</table><br>\n";
}
?>
我的“阵列”:
<?php echo $form->error("upduser"); ?>
<table>
<form action="adminprocess.php" method="POST">
<tr><td>
Username:<br>
<input type="text" name="upduser" maxlength="30" value="<?php echo $form->value("upduser"); ?>">
</td>
<td>
Level:<br>
<select name="updlevel">
<option value="1">Member
<option value="2">Supporter
<option value="3">Donor
<option value="4">VIP
<option value="5">Veteran
<option value="7">Co-Founder
<option value="8">Founder
<option value="9">Admin
</select>
</td>
我只需要帮助设置一个包含代码的数组
答案 0 :(得分:3)
您应该在数据库中添加一个表,其中包含级别信息(id和name),然后在查询中使用连接来获取包含用户详细信息的名称。
另一种解决方案,在我看来不太可取,就是硬编码你的数组并显示相应的级别名称:
function displayUsers(){
$levels = array('1'=>'Member','2'=>'Supporter','3'=>...);
//do_query
//loop results
$ulevel = $levels[mysql_result($result,$i,"userlevel")];
//continue loop
}