Blog Posts » Umum » PHP-MySQL Rank

PHP-MySQL Rank

Berikut ini adalah cara sederhana untuk mengurutkan (membuat nomor urut / rank) data MySQL dan menampilkannya dengan PHP.

Misal kita buat tabel u:
[Textarea][RAW][Download]

  1. CREATE TABLE u (
  2. user VARCHAR(50) NOT NULL,
  3. score BIGINT UNSIGNED NOT NULL DEFAULT '0',
  4. KEY score (score)
  5. ) ENGINE = MYISAM;


Contoh tabel:
img

Cara 1:
[Textarea][RAW][Download]

  1. $q = mysql_query("SELECT @:=@+1 rank, user FROM (SELECT @:=0) r, u ORDER BY score DESC LIMIT 5");
  2. while($arr = mysql_fetch_array($q)) {
  3. echo '#'.$arr['rank'].' '.$arr['user'].'<br />';
  4. }

Keterangan:
rank adalah alias dari @:=@+1 yang diambil dari tabel r atau SELECT @:=0
r adalah alias dari SELECT @:=0

Cara 2:
[Textarea][RAW][Download]

  1. $q = mysql_query("SELECT user FROM u ORDER BY score DESC LIMIT 5");
  2. for($rank=1; $rank<=5; $rank++) {
  3. $arr = mysql_fetch_array($q);
  4. echo '#'.$rank.' '.$arr['user'].'<br />';
  5. }


Cara 3:
[Textarea][RAW][Download]

  1. $q = mysql_query("SELECT user FROM u ORDER BY score DESC LIMIT 5");
  2. $rank = 0;
  3. while($arr = mysql_fetch_array($q)) {
  4. $rank++;
  5. echo '#'.$rank.' '.$arr['user'].'<br />';
  6. }


Ketiga contoh diatas menghasilkan:
#1 sugeng
#2 raharjo
#3 waluyo
#4 bejo
#5 slamet

Attachments: sqlrank.zip