2016-07-14 96 views
-1

这个新的代码对我的作品,但并不完全,现在的问题是,所有用户都具有相同性排名中,都有1°用户排名系统

<?php 
mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error()); 
mysql_select_db($mysql_db) or die(mysql_error()); 
$sql = "SELECT ID, Name, username, Wins, Loses, Draws, (Wins + Loses) AS points FROM users WHERE username='$_GET[user]' ORDER BY points DESC"; 
$result = mysql_query($sql) or die(mysql_error()); 
if(!$result){ 
    echo 'SQL Query Failed'; 
}else{ 
    $rank = 0; 
$last_score = false; 
$rows = 0; 
while($row = mysql_fetch_array($result)){ 
$rows++; 
if($last_score!= $row['Wins']){ 
    $last_score = $row['Wins']; 
    $rank = $rows; 
} 
echo "rank ".$rank." is ".$row['Name']." with point ".$row['Wins'].""; 
} 
} 
?> 

我需要

Example: 
ID username Wins Loses 
1 demo 12 12 RANKIG= 1° 
2 demo2 1 3 RANKIG= 2° 
+3

注意事项,不要使用'mysql_ *'了,它已被删除,因为phpv7并不做'... WHERE username ='$ _ GET [user]' ......这是一个安全问题(sql注射)。看看'PDO'并绑定值/参数。 – Rasclatt

+0

你能告诉我一个代码应该如何的例子吗? –

+0

现在改变你的密码 – Strawberry

回答

0

尝试您的查询为:

$result=mysql_query("SELECT ID, Name, username, Wins, Loses, Draws, (Wins + Loses) AS points, count(points) AS Ranking FROM `users` WHERE username='$_GET[user]' ORDER BY CONVERT(points, INT) DESC"); 
+0

你好,谢谢,但是我没有得到结果:( –

+0

尝试使用'points'没有双引号吗?已更新答案以反映变化。我无法在我的机器上复制此内容,原因是我的apache没有安装在这台机器上:/希望有帮助,更多的建议看起来用一些mysql_error处理来调试你的查询 – ThatAwesomeCoder

+0

你认为你可以在我的服务器上帮助我吗?请 –