我有一個包含遊戲分數的多列表。格式是每個分數都附有一個遊戲編號。然後我找到每個gameid的最高分並顯示它。問題是,如果一個遊戲被刪除,並且該遊戲ID號不再連續,則它將顯示該遊戲的相同高分的兩個。一個例子是對於gameid 3分5000,對於gameid 4分爲6000,對於gameid 5分爲3200.如果我刪除gameid 4,輸出將是5000-3,5000-3,3200-5.I顯然不是想要它輸出2分相同的分數。下面是我用來做這件事的PHP代碼:PHP MySQL試圖加載數據
<?php
echo '<table cellpadding="0" class="content" cellspacing="0" width="100%" >';
echo '<tr><th>Game</th><th>Initials</th><th>Score</th><th>Date</th></tr>';
include("includes/sqlconnect.inc");
include("includes/functions.php");
$idnum=1;
$allscores = mysql_query("SELECT * FROM scores");
$highid = array(
);
while($row = mysql_fetch_array($allscores))
{
$idnums=$row['gameid'];
$highid[]=$idnums;
}
while($idnum<=max($highid))
{
$allscores = mysql_query("SELECT * FROM scores WHERE gameid ='$idnum'");
$array = array(
);
while($row = mysql_fetch_array($allscores))
{
$score=$row['score'];
$scoreid=$row['scoreid'];
$array[$scoreid]=$score;
}
$high=doublemax($array);
$nameid = mysql_query("SELECT scoreid,playerid,score FROM scores WHERE scoreid='$high[i]'");
while($row = mysql_fetch_array($nameid))
{
$player=$row['playerid'];
}
$dateid = mysql_query("SELECT scoreid,date FROM scores WHERE scoreid='$high[i]'");
while($row = mysql_fetch_array($dateid))
{
if($row['date']=="")
{
$date="Unknown";
}
else
{
$date=$row['date'];
}
}
$name = mysql_query("SELECT playerid,player_initials FROM players WHERE playerid='$player'");
while($row = mysql_fetch_array($name))
{
$initials=$row['player_initials'];
}
$gamename = mysql_query("SELECT gameid,gamename FROM games WHERE gameid='$idnum'");
while($row = mysql_fetch_array($gamename))
{
$game=$row['gamename'];
}
$idnum++;
echo "<tr>";
echo '<td>'.$game.'</td>';
echo '<td>'.$initials.'</td>';
echo '<td>'.number_format($score).'</td>';
echo '<td>'.$date.'</td>';
echo "</tr>";
}
echo "</table>";
?>
數據是:5000 3,6000 4,3200 5.您刪除6000 4.結果現在如何5000 3,5000 3,3200 5? –
這是我確切的問題,我有。 – Casey