Creating your own Leaderboard / Highscores Easy and Free (PHP & MySQL) [UPDATED 2020]

You're viewing a single comment in a conversation. View all the comments
  • 7 Comments

  • Order by
  • how do I show example: Your Position In Rank: 99

    how do I show an error if the player puts a name that has already registered in the database?

    • Check the new attachments in this tutorial. I have uploaded a 'getrank.php' ;)

      To use it you call it like described in page 4 of this tutorial! :)

    • (Continued...)

      Changes in getrank.php:

      1)

      $sql = "SELECT COUNT(*) AS rank FROM scores WHERE score > " . $_GET['score'] . " GROUP BY name";

      2)

      In the while loop remove the "echo part". Outside of the loop, print i:

      echo ($i + 1);

    • There are a few ways to do this.

      Here is one idea:

      Check the current getScores.php. Copy the PHP file and rename to getRank.php

      When you call this PHP, check the DataBase and return a Number (the player RANK).

      How?

      When calling getRank you need to send a parameter. So the PHP code knows what to look for inside the DB.

      One option is to use a UserName or Email, whatever "unique" identifier of the current player. The PHP would be called like this: "www.URL.com/getRank.php?playername=john"

      It must return, for example: "99"

      MY CHOICE. The second option.

      Call the PHP using your best score, and the PHP code will check HOW MANY people have a better score than YOU.

      Example: "www.URL.com/getRank.php?score=75"

      The PHP code checks how many players have a better score than 75 and will return:

      98

      So you know that you are #99 in the rank

      • So if we have more than one person with same score, how will that work? Anyway you can also get sql to check not just score but also name?

        • If you have: Andy 30, Brad 25, Charly 25, David 20, Edgar 15, Frank 15, George 15, Helen 10

          - getrank.php?score=20 (for David) will return Rank #4 ("there are 3 better scores")

          - getrank.php?score=15 (for Frank) will return Rank #5 ("there are 4 better scores." This ignores other people with same score -15-. In other words, it ranks you as the best in your same score. With 15 points your rank could be #5, #6 or #7. You can also make ALL of them with score=15 rank "5th")

          This is like some top scores looking like this:

          1 Andy

          2 Brad

          2 Charly

          4 David

          5 Edgar

          5 Frank

          5 George

          8 Helen