1

我正在这里做一个小而简单的(我敢肯定对你们中的大多数人来说)项目。简而言之,有一个名为 B3 的管理“工具”将数据存储在 mysql 中。我拼凑了一个小 php 来获取所有级别的管理员并显示简短的细节。该工具旨在轻松检查谁拥有管理员权限,以及他们的级别。诚然,这两个额外的细节是可能不会保留的绒毛(对我来说更像是一种概念证明。)

我所拥有的一切都很好,并且正如我上面概述的那样。但是,我想更进一步,让它更“用户友好”。还有第二个表,其中包含 group_bits 中列出的数字级别,并为其分配一个用户友好的名称,例如 16 可能是主持人。

我知道这对你们大多数人来说可能是学龄前水平,但我已经搜遍了,只是不知道我想做的正确措辞是什么..

本质上,在显示我的输出时,我希望它“我认为”在 group+bits 上执行一次 foreach 并显示正确的访问级别,而不仅仅是 group_bits id。理想情况下,它会从识别数字和名称的组表中提取该信息,但我会很高兴地对其进行硬编码,有点像“如果 $group_bits=16 then $group="Moderator") . 无论完成什么工作,大声笑.. 普遍会更好地从表本身获取它,对,所以如果它被改变了,那么这个文件就不必改变了,但我感觉可能会更多困难吗?以下是一些有用的细节,以及我所拥有的:

我的PHP:

//We connect to a   database using the mysql_connect command.
mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); 

//We select the database we are  going to use.
mysql_select_db("$dbname") or die(mysql_error()); 

//$query="SELECT * FROM clients ORDER BY name DESC";
$query="SELECT * FROM `clients` WHERE group_bits >'1'";

$result=mysql_query($query);
$num=mysql_numrows($result);  //Counts the rows in the table
echo "" .$screweditup ;
mysql_close();

?>
<table border="0" cellspacing="2" cellpadding="2">
    <tr>
        <td><font face="Arial, Helvetica, sans-serif">Player Name</font></td>
        <td><font face="Arial, Helvetica, sans-serif">B3 Level</font></td>
        <td><font face="Arial, Helvetica, sans-serif">Times Connected</font></td>
        <td><font face="Arial, Helvetica, sans-serif">Greeting Msg</font></td>
        <td><font face="Arial, Helvetica, sans-serif"></font></td>
    </tr>

<?php
$i=0;
while ($i < $num) {
    for each($
    $f1=mysql_result($result,$i,"name");
    $f2=mysql_result($result,$i,"group_bits");
    $f3=mysql_result($result,$i,"connections");
    $f4=mysql_result($result,$i,"greeting");

    //$f5=mysql_result($result,$i,"greeting");
?>

<tr>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td>
</tr>

客户端是保存您看到正在使用的信息的表。groups 保存 group_bits 和实际组名称所在的表。它看起来像这样(表视图:)

id               name                keyword
16               Admin               admin
8                Moderator           mod
0                Guest               guest

(groups 表中的数字称为 id,但在 clients 表中称为 group_bits - 它们是相同的,但名称不同。任何帮助将不胜感激!

151

4

1 回答 1

0
$query="SELECT g.name
              ,c.* FROM clients c 
                   JOIN groups g 
        WHERE group_bits >'1' 
          AND c.group_bits=g.group_bits";

将 groups.name 列放在所有结果的前面。

我不确定您为什么要反引号,您可能需要再次添加这些内容。

于 2012-12-08T02:53:03.557 回答