打印到文本时替换mysql数据

时间:2014-12-16 14:01:17

标签: php mysql

目前,当有人退出游戏时,它会以游戏模式进入数据库

modes:
0 = easy
1 = noive
2 = legendary

在我的高分榜上试图让它取代它的模式  “0”到“easy”“1”表示新手,而“2”表示传奇

enter image description here

我的代码:

$skill_xp = strtolower($skill.'_xp');
$min = $page == 1 ? 0 : ($page * 25) - 25;
$res = $con->query("SELECT * FROM hs_users ORDER BY $skill_xp DESC LIMIT $min, 25");
if ($res->num_rows > 0) {
    $rank = ($page * 25) - 24;
    while ($row = $res->fetch_assoc()) {
        $level = $skill_xp == 'overall_xp' ? getTotalLevel($row, $skills) : getLevelForXp($row[$skill_xp], $skill);
        echo '
            <tr>
            <td>'.$rank.'</td>
            <td><a href="?player='.$row['username'].'">'.$row['username'].'</a></td>
            <td><a href="?player='.$row['difficulty'].'">'.$row['difficulty'].'</a></td>
            <td style="text-align:right;">'.getLevel($row).'</td>
            <td style="text-align:right;">'.number_format($level).'</td>
            <td style="text-align:right;">'.number_format($row[$skill_xp]).'</td>
            </tr>';
        $rank++;
    }
}

2 个答案:

答案 0 :(得分:1)

您可以使用switch

创建一个这样的函数:

function translateSkill( $skill ){
switch( $skill ){
    case 0:
    return "Easy";
    break;
    case 1: 
    return "Novice";
    break;
    case 2:
    return "Legen ... wait for it ... DARY!";
    break;
}
}

并在<td>而不是:

<td><a href="?player='.$row['difficulty'].'">'.$row['difficulty'].'</a></td>

你使用:

<td><a href="?player='.$row['difficulty'].'">'.translateSkill( $row['difficulty'] ).'</a></td>

答案 1 :(得分:0)

设置具有所有可用模式的阵列。 (如果$row['difficulty']存储值)

$mode = array(
    0 => 'easy',
    1 => 'novice',
    2 => 'legendary'
);

然后,您可以通过数组键访问该数组:

echo '<td><a href="?player='.$row['difficulty'].'">'.$mode[$row['difficulty']].'</a></td>';