2013-07-23 103 views
1

我正在開發一個登錄系統,並在其中實現了一個基本的管理員/級別系統。現在的水平只是數字(1-9)。不過,我確實將它們標記爲不同的名稱或組。例如,1 =成員,2 =支持者等。我還有一個成員列表,顯示上次活動的用戶ID,級別和時間。但它只顯示id的編號(如預期的那樣)。我的問題是我如何設置它,以便數字最終顯示成員名單上的名稱/組?在先進的,喬希級別/組標籤系統?

感謝

下面是表的代碼:

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

不要使用'mysql_result',因爲它已被棄用(見http://php.net/manual/en/function.mysql-result.php)。此外,您將需要某種映射(即使用數組)來顯示文本而不是用戶級別。 – dirkk

+0

我有一個數組在提交領域。所以鈦顯示的名稱,但設置值我可以用它作爲一個數組?查看帖子編輯代碼 – s28400

回答

3

您應該在數據庫中添加一個包含關卡(id和名稱)信息的表格,然後在查詢中使用連接來獲取包含用戶詳細信息的名稱。

另一種解決方案,這在我看來是不太可取的,將是硬編碼的數組,並顯示相應的級別名稱:

function displayUsers(){ 
    $levels = array('1'=>'Member','2'=>'Supporter','3'=>...); 
    //do_query 
    //loop results 
    $ulevel = $levels[mysql_result($result,$i,"userlevel")]; 
    //continue loop 
} 
+0

感謝您的幫助。我會嘗試添加或編輯數據庫,但是當我做它停止工作。真的很奇怪,我知道。我也嘗試了這個硬代碼(這是我不幸的),它給了我一個錯誤,當我把它。錯誤是:解析錯誤:語法錯誤,意想不到的'var'(T_VAR)在 – s28400

+0

@ s28400對不起我把我的Javascript和我的PHP混合在一起。現在更新。它如何停止工作?你怎麼操縱數據庫? –

+0

啊np,一直髮生xD ..很好,它給了我這個:解析錯誤:語法錯誤,意外的'['in ..而就數據庫而言,我不知道。我將不得不就此發佈另一個問題。 – s28400