如何将相同的列(在本例中按“级别”排序)放在一起?我正在做一个高分,我从我的数据库中按级别列出它们。如果他们处于同一级别,我希望他们具有相同的 ID。
但是我不想在别人身上显示ID。只有第一个。这是一个例子:
ID - Name - Level
1 - John - 5
2 - David - 4
3 - Josh - 3
- Sam - 3
4 - George - 2
所以我想把它们放在一起,但是如果它们的级别相同,只有第一个显示ID。
我不希望它看起来像:
1 - John - 5
2 - David - 4
3 - Josh - 3
3 - Sam - 3
4 - George - 2
现在,它只是列出每个人,并给每个人一个唯一的 ID。即使他们具有相同的“级别”。我怎样才能解决这个问题?这是我的代码:
$sql = mysql_query("SELECT * FROM rookstayers ORDER BY level DESC LIMIT 0, 500");
$id = 1;
while($row = mysql_fetch_array($sql)){
$name = $row['name'];
$level = $row['level'];
$world = $row['world'];
$account = $row['accountstatus'];
$status = $row['onlinestatus'];
$onrow = '';
$typeServ = '';
$player_name = urlencode($name);
if ($status == 1){
$status = 'Online';
$onrow = 'online';
} khác {
$status = 'Offline';
$onrow = 'offline';
}
if ($account == 'Premium Account'){
$account = 'Premium';
} khác {
$account = 'Free';
}
if ($world == 'Aurora' || $world == 'Aurera'){
$typeServ = 'active';
} khác {
$typeServ = '';
}
echo "";
echo "" . $id . " | ";
echo "" . $name . "  " . " | ";
echo "" . $level . " | ";
echo "" . $world . " | ";
echo "" . $account . " | ";
echo "" . $status . " | ";
echo "
";
$id++;
}
echo "";
echo "";
?>
您可以为当前级别创建一个临时变量并检查它以查看该 id 是否会显示在输出中。
$id = 1;
$last_player_lvl = '';
while($row = mysql_fetch_array($sql)){
///....
echo "";
echo "" . ( ($last_player_lvl == $row['level']) ? '' : $id ) . " | ";
echo "" . $name . "  " . " | ";
echo "" . $level . " | ";
echo "" . $world . " | ";
echo "" . $account . " | ";
echo "" . $status . " | ";
echo "
";
if($last_player_lvl == $row['level']){
$id = $id;
}khác{
$id++;
}
$last_player_lvl = $row['level'];
//....
Tôi là một lập trình viên xuất sắc, rất giỏi!