2016-07-14 128 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

你認爲你可以在我的服務器上幫助我嗎?請 –