I did wrote a Web Service for a Android game with PHP. The query is used for calculating user's rank is like this:
$rank = mysqli_fetch_row(mysqli_query($db, "SELECT FIND_IN_SET(`score`, (SELECT GROUP_CONCAT(`score` ORDER BY `score` DESC) FROM `scores`)) AS `rank` FROM `scores` WHERE `user_id` =  '{$user_id}'"));
So, what is the problem? Suppose user_a submit his score (for example 1000) and $rank equals to 1, then if user_b submit the same score as user_a, the $rank will be 1 again. I don't want this, in the case of score equality, first user must have the higher rank. So I added a new integer column for submit_date timestamp to scores table and tried to manipulate the query and unfortunately since i'm not professional in SQL, My efforts failed.
Update: I won't store the rank itself in the database. The scores table structure looks like this:
`_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`score` int(11) NOT NULL,
`submit_date` int(11) NOT NULL
The user_id is unique. If a user didn't submitted his score before, a new record created. Else his record will be updated (in case new score is higher than old one).
What should i do?
 
    
 
    