MySQL表关联

时间:2012-10-31 11:58:14

标签: php mysql enums correlation

我有点像菜鸟,所以我不知道这是否真的可行。

我的MySQL数据库中有两个要关联的字段:

Level int(11)
Rank enum('Hobo','Shippai','NoLifer',Troublemaker','gangster') (and so it continues.)

我希望level 1=Hobolevel 2=Shippai等等。

目前它看起来像这样:

Level: {$ir['level']}

并希望它在网站上看起来像这样:

Rank: Hobo

提前感谢您的帮助......

编辑:

这是表格的代码:

  


        
        
        “
        $ EXP =(int)的($ IR [ 'EXP'] / $ IR [ 'exp_needed'] * 100);
        打印“
        姓名: {$ ir ['用户名']} 水晶: {$ cm}
        等级: {$ ir ['level']}
         Exp: {$ exp}%
        金钱: $ fm
         Gang:“;
        $ qs = $ db->查询(“SELECT * FROM gangs WHERE gangID = {$ ir ['gang']}”);
        $ RS = $ DB-> fetch_row($ QS);
        if(!$ db-> num_rows($ qs))
        {
        打印“没有帮派”;
        }
        否则
        {
        打印“{$ rs ['gangNAME']}”;
        }         打印“                           财产: {$ ir ['hNAME']}
         Days Old: {$ ir ['daysold']}         健康: {$ ir ['hp']} / {$ ir ['maxhp']}         能量: {$ ir ['energy']} / {$ ir ['maxenergy']}         勇敢: {$ ir ['brave']} / {$ ir ['maxbrave']}         意志: {$ ir ['will']} / {$ ir ['maxwill']}                                      
“;

1 个答案:

答案 0 :(得分:1)

在inside,id(int,主键,自动增量),name(char20)中创建一个名为rank_define的新表,添加你的命名等级,使其如下所示:

id |名称

1 |流浪汉

2 | Shippai

在您的代码中

$user_id = 1; // or whatever the users rank is
$query = mysql_query("SELECT `name` FROM rank_define WHERE id='$user_id'");

这将返回结果集,因此您需要执行以下操作:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "rank: " . $row['name'];  // will output rank: Hobo
}

我认为这就是你的意思,是针对用户帐户还是其他不同的东西?这假设没有帐户,您只是在搜索结果。

如果它是用户帐户系统的一部分,您需要一个用户表,例如:id(auto inc,primary key,int),name,rank,(etc ..)

在排名中,他们的排名是从rank_define表中插入的,所以1 = hobo,2 = shippai等。然后你会查询该表

更新回答:

好的,你有了while循环。while ($row = mysql_fetch_array($query, MYSQL_NUM)) {

它会是这样的:

    <table>
    <?php
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo "<tr>";
        echo "<td>Name: " . $row['name'] . "</td>";  // will output their name / account whatever
        echo "<td>Rank: " . $row['rank'] . "</td>";  // will output their rank
        echo "</tr>";
    }
    ?>
</table>