我刚开始使用游戏服务器并在我的网站上制作了一个简单的排行榜,其中显示了玩家的统计数据。我面临的问题是它会在表格中显示重复的行。
这就是我的意思:
这是我的代码。
<?php
mysql_connect('','','') or die(mysql_error());
mysql_select_db('dbname') or die(mysql_error());
$query=mysql_query("select * from playerstats,playerinfo limit 0,10") or die(mysql_error());
echo'<table border="1" ><th >NOM DU JOEUR</th><th>VICTIMES</th><th>AI TUER</th><th>TEAMKILLS</th><th>DECES</th><th>RÉANIMATIONS</th><th>ARGENT</th>';
while($res=mysql_fetch_array($query))
{
echo'<tr><td>'.$res['Name'].'</td><td>'.$res['PlayerKills'].'</td><td>'.$res['AIKills'].'</td><td>'.$res['TeamKills'].'</td><td>'.$res['DeathCount'].'</td><td>'.$res['ReviveCount'].'</td><td>'.$res['BankMoney'].'</td></tr>';
}
echo'</table>';
?>
我会提供一些帮助。如果用户名已经列出,我不想要重复的条目。
编辑: 这是我试图从
获取的2个表Here is the 2 tables i am trying to fetch from -- ----------------------------------------------------- -- Table `PlayerStats` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `PlayerStats` ( `PlayerUID` VARCHAR(32) NOT NULL, `LastModified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `PlayerKills` INT UNSIGNED NOT NULL DEFAULT 0, `AIKills` INT UNSIGNED NOT NULL DEFAULT 0, `TeamKills` INT UNSIGNED NOT NULL DEFAULT 0, `DeathCount` INT UNSIGNED NOT NULL DEFAULT 0, `ReviveCount` INT UNSIGNED NOT NULL DEFAULT 0, `CaptureCount` INT UNSIGNED NOT NULL DEFAULT 0, UNIQUE INDEX `idx_PlayerStats_uniquePlayer` (`PlayerUID` ASC), CONSTRAINT `fk_PlayerStats_PlayerInfo` FOREIGN KEY (`PlayerUID`) REFERENCES `PlayerInfo` (`UID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `PlayerInfo` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `PlayerInfo` ( `UID` VARCHAR(32) NOT NULL, `CreationDate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `Name` VARCHAR(256) CHARACTER SET 'utf8' NULL, `LastSide` VARCHAR(32) NULL, `BankMoney` FLOAT NOT NULL DEFAULT 0, `BattlEyeGUID` VARCHAR(32) NULL, PRIMARY KEY (`UID`)) ENGINE = InnoDB;
答案 0 :(得分:1)
我认为你在SQL查询中遇到的问题,你可以从两个表中得到所有这些,这就是为什么它会被公开:
"select * from playerstats,playerinfo limit 0,10"
试试这个:"select * from playerinfo limit 0,10"
答案 1 :(得分:1)
我认为您想要加入表格,而不是像现在这样选择两者。 尝试:
select * from `playerinfo` i
left outer join `playerstats` s on s.`PlayerUID`=i.`UID`
limit 0,10;
答案 2 :(得分:0)
您可以从数据库中选择DISTINCT值,
$query=mysql_query("select DISTINCT name from playerstats,playerinfo limit 0,10") or die(mysql_error());
答案 3 :(得分:0)
您展示的记分牌图片似乎有不同的结果。 他们是分开的比赛吗?你如何把它们放在你的数据库中? 新游戏=添加新行?如果有多个具有相同缺刻的数据库条目,那么显然您的代码将全部输出。
答案 4 :(得分:0)
这是我试图从
获取的2个表AuthServiceProvider