PHP/MySQL: Menata dan Mengurutkan Nilai yang Tidak Berurutan Dalam Tabel


  • Eri
  • erial╦│newtimesroman[~@t~]gmail[~d.t~]com
  • Wednesday, April 27th, 2011
  • CopyLEFT (c) 2011++ www.spyrozone.net All Rights Reserved


Duh, bingung sich mau kasih judul apa :D Jadi, hari ini saya mendapatkan kasus yang bagi newbie seperti saya cukup menarik. Saya memiliki data seperti ini di tabel daftar_calon_menantu:

id nama ranking
1 Sujoko 1
2 Suparno 2
3 Supriono 3
4 Sugogon 4
5 Sumiarto 5
6 Susu 6

Karena Suatu alasan, peserta nomor 2, 4 dan 5 meninggal dunia (hiii… sadis banget loe.. :p ), maka data tersebut dihapus dari tabel daftar_calon_menantu, sehingga kini tabel saya menjadi seperti ini:

id nama ranking
1 Sujoko 1
3 Supriono 3
6 Susu 6

Perhatikan kolom ranking. Nilai pada kolom tersebut menjadi 1,3,6, tidak lagi berurutan. Bagaimana mengubah nilainya agar menjadi 1,2,3 dengan menggunakan PHP/MySQL?

Berikut adalah script PHP yang saya gunakan untuk menyelesaikan permasalahan tersebut:

<?PHP
$dbhost = 'localhost'; //host
$dbuser = 'root'; //mysql username
$dbpass = 'password'; //mysql password
$dbname = 'db_kawin'; //database name
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);
$i = 1;
$resetRanking = mysql_query("SELECT ranking FROM daftar_calon_menantu ORDER by ranking") or die(mysql_error());
while($row = mysql_fetch_array($resetRanking)) {
 mysql_query("UPDATE daftar_calon_menantu SET ranking=$i WHERE ranking=".$row['ranking']);
 ++$i;
}
?>

Begitu diakses, nilai ranking pada tabel saya langsung berurutan:

id nama ranking
1 Sujoko 1
3 Supriono 2
6 Susu 3

Sekian, mudah-mudahan ada manfaatnya ;)


//E.O.F