Tutorial PHP MySQL Part 6: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_row)

Setelah menjalankan fungsi mysql_connect() untuk membuat koneksi antara PHP dengan MySQL, dan menjalankan query MySQL dengan fungsi mysql_query(), pada tutorial kali ini kita akan membahas tentang fungsi mysql_fetch_row() yang digunakan untuk menampilkan tabel hasil query MySQL tersebut.


Menampilkan Data MySQL dengan fungsi mysql_fetch_row

Perintah SELECT adalah query MySQL yang paling sering gunakan. Query ini berfungsi untuk menampilkan data dari database. Data yang ditampilkan MySQL biasanya diberikan dalam bentuk tabel yang terdiri dari baris dan kolom.

Untuk menampilkan data MySQL di dalam PHP, hasil dari fungsi mysql_query() harus diproses lebih lanjut agar bisa ditampilkan di dalam web browser. PHP menyediakan banyak cara untuk menampilkan hasil query MySQL. Salah satunya akan kita bahas dalam tutorial kali ini dengan fungsi: mysql_fetch_row().

Fungsi mysql_fetch_row() digunakan untuk menampilkan tabel secara baris per baris. Fungsi mysql_fecth_row() akan mengembalikan nilai 1 baris dari sebuah tabel pada setiap pemanggilan. Sehingga untuk dapat menampilkan seluruh isi tabel, fungsi mysql_fecth_row() harus dipanggil secara berulang.

Berikut adalah format dasar penulisan fungsi mysql_fetch_row() dalam PHP

$row = mysql_fetch_row($result)
  • $row adalah variabel yang akan menampung hasil fungsi  mysql_fetch_row(). Hasil dari fungsi mysql_fetch_row() berupa tipe data array dengan key merujuk kepada kepada urutan kolom, dan value-nya (nilai dari array) adalah isi dari kolom tersebut.
  • $result adalah variabel inputan query untuk fungsi mysql_fecth_row(). Variabel ini berasal dari fungsi mysql_query().

Cara pengambilan data dari variabel $row, penting untuk dipahami.

Variabel $row hasil fungsi mysql_fetch_row() bertipe array. Jika sebuah baris di dalam tabel MySQL terdiri dari 3 kolom, maka varibel $row akan berisi nilai sebagai berikut: $row[0]=nilai_kolom_1, $row[1]=nilai_kolom_2, dan $row[2]=nilai_kolom_3. Index array dimulai dari 0, dan karena itu kolom 1 berada pada index 0, bukan index 1.

Yang perlu menjadi perhatian, fungsi mysql_fetch_row() hanya membaca 1 baris pada sekali pemanggilan. Jika tabel kita terdiri dari 5 baris, maka fungsi mysql_fecth_row() harus diulang sebanyak 5 kali.


Cara Menampilkan Tabel MySQL dari PHP

Agar lebih mudah memahami cara kerja fungsi mysql_fetch_row(), kita akan langsung praktek dengan kode program.

Karena fungsi mysql_fetch_row() digunakan untuk menampilkan data, kita harus membuat datanya terlebih dahulu, yaitu berupa database MySQL beserta tabelnya.

Sebagai data contoh dan sarana latihan menggunakan query MySQL, saya akan membuat database universitas, dan tabel mahasiswa_ilkom. Database universitas dan tabel mahasiswa_ilkom ini akan saya gunakan pada tutorial PHP MySQL selanjutnya.

Berikut adalah kode yang diperlukan:

<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
 
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
   die("Koneksi dengan MySQL gagal");
}
 
//buat database universitas
$result=mysql_query('CREATE DATABASE universitas');
if (!$result)
{
   die("Database mahasiswa gagal dibuat");
}
 
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
   die("Database mahasiswa gagal digunakan");
}
 
//buat tabel mahasiswa_ilkom
$query= "CREATE TABLE mahasiswa_ilkom (nim CHAR(9) NOT NULL PRIMARY KEY, 
nama CHAR(50), umur INT, tempat_lahir CHAR(50), IPK DECIMAL (3,2))";
$result=mysql_query($query);
if (!$result)
{
   die("Tabel mahasiswa_ilkom gagal dibuat");
}
 
//tambahkan data ke dalam tabel mahasiswa_ilkom
$query="INSERT INTO mahasiswa_ilkom VALUES ('089045001', 'Andi Suryo',
23, 'Jakarta', 2.7)";
mysql_query($query);
 
$query="INSERT INTO mahasiswa_ilkom VALUES ('109245021', 'Santi Syanum',
21, 'Malang', 3.2)";
mysql_query($query);
 
$query="INSERT INTO mahasiswa_ilkom VALUES ('099145055', 'Neil Situmorang',
22, 'Medan', 1.9)";
mysql_query($query);
 
$query="INSERT INTO mahasiswa_ilkom VALUES ('089023013', 'Alex Supriyanto',
23, 'Surabaya', 2.9)";
mysql_query($query);
 
$query="INSERT INTO mahasiswa_ilkom VALUES ('109223041', 'Rani Sabrina',
21, 'Padang',3.7)";
mysql_query($query);
 
echo "Database universitas dan Tabel mahasiswa_ilkom berhasil dibuat";
?>

Kode PHP diatas sedikit panjang jika dibandingkan contoh-contoh kita sebelumnya, namun intinya perintah diatas adalah untuk membuat database universitas, dan tabel mahasiswa_ilkom. Setelah tabel terbentuk, kemudian saya menambahkan beberapa data kedalam tabel tersebut.

Dari contoh diatas, anda juga dapat melihat cara pembuatan database, pembuatan tabel, dan cara memasukkan nilai kedalam database. Semuanya dijalankan dengan fungsi mysql_query().

Jika anda sudah paham tentang query MySQL, perintah query diatas tentunya tidak terlalu sulit untuk dipahami. Namun jika ragu tentang instruksi query yang saya gunakan, anda bisa mempelajarinya di tutorial MySQL duniailkom.

Fungsi-fungsi PHP yang saya gunakan juga telah kita pelajari pada tutorial sebelumnya. Tambahan baru mungkin ada pada penggunaan logika IF untuk menangani fungsi yang gagal. Saya menggunakan instruksi (!$result) untuk masuk pada fungsi die() jika fungsi tersebut gagal dijalankan.

Sebagai contoh, jika anda menjalankan kode diatas sebanyak 2 kali, maka akan tampil pesan 'Database mahasiswa gagal dibuat'. Hal ini terjadi karena terdapat duplikasi database di dalam MySQL, sehingga kode PHP akan berhenti pada baris ke 15 karena fungsi die().


Cara Menampilkan Baris Tabel Dengan Fungsi mysql_fetch_row

Setelah tabel contoh selesai dibuat, saatnya kita mencoba menampilkan data dari tabel mahasiswa_ilkom dengan fungsi mysql_fetch_row().

Cara paling dasar untuk menampilkan data dari mysql adalah seperti kode program berikut ini:

<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
 
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
   die("Koneksi dengan MySQL gagal");
}
 
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
   die("Database mahasiswa gagal digunakan");
}
 
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
?>


Contoh Cara Menampilkan Tabel MySQL dengan fungsi mysql_fetch_row()Kode program dari baris 1 sampai baris 16 merupakan persiapan untuk mengkoneksikan MySQL dan memilih database universitas.

Perhatikan pada baris ke 12, dimana saya menjalankan query "USE universitas". Query ini ditujukan untuk memberitahu MySQL bahwa kita akan menggunakan database mahasiswa. Alternatif penulisan mysql_query('USE universitas') adalah dengan menggunakan fungsi mysql_select_db('universitas'). Anda bebas ingin menggunakan salah satunya.

Pada baris ke-20 saya menjalankan query SELECT untuk menampilkan seluruh isi tabel mahasiswa_ilkom.  Cara menjalankannya adalah dengan fungsi mysql_query() dengan perintah query: 'SELECT * FROM mahasiswa_ilkom'. Hasil fungsi ditampung kedalam variabel $result.

Variabel $result selanjutnya diproses dengan fungsi mysql_fetch_row($result), dan disimpan dalam variabel $row.

Seperti yang telah kita pelajari, bahwa fungsi mysql_fetch_row() akan menyimpan hasil query sebagai array dengan key adalah urutan kolom mulai dari key ke-0 untuk kolom ke-1 tabel, $row[1] untuk kolom ke-2, dan begitu seterusnya. Karena tabel mahasiswa_ilkom hanya memiliki 5 kolom, maka $row[4] adalah kolom terakhir.


Cara Menampilkan Seluruh Tabel Dengan Fungsi mysql_fetch_row

Sesuai namanya, fungsi mysql_fetch_row() hanya akan menampilkan baris perbaris, jadi bagaimana caranya untuk menampilkan seluruh tabel mahasiswa_ilkom? Caranya adalah dengan mengulang fungsi mysql_fetch_row() sebanyak jumlah baris yang ingin ditampilkan.

Sehingga contoh program kita menjadi sebagai berikut:

<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
 
//gunakan database universitas
$result=mysql_query('USE universitas');
 
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');

$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";

$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";

$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";

$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";

$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
?>

Contoh Cara Menampilkan Tabel MySQL dengan fungsi mysql_fetch_row() 2Pada contoh diatas, saya menghapus baris fungsi die() semata-mata agar contoh program kita tidak terlalu panjang.

Kode program diatas berjalan sebagaimana dengan seharusnya, karena pada setiap pemanggilan fungsi mysql_fetch_row(), PHP akan 'menggeser' penunjuk baris MySQL ke baris berikutnya di dalam tabel. Sehingga untuk pemanggilan mysql_fetch_row() ke-2 posisi pointer MySQL akan berada dibaris ke-2 dari tabel, dan begitu seterusnya hingga pemanggilan mysql_fetch_row() ke-5.


Menampilkan Tabel MySQL Dengan Perulangan For

Namun jika anda perhatikan, fungsi mysql_fetch_row() yang ditulis secara berulang-ulang pada contoh sebelumnya merupakan pekerjaan yang cocok untuk fungsi perulangan. Sehingga dengan menggunakan perulangan for, kode kita akan menjadi lebih mudah ditulis.

<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
 
//gunakan database universitas
$result=mysql_query('USE universitas');

//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
for ($i=1;$i<=5;$i++)
{
   $row=mysql_fetch_row($result);
   echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
   echo "<br />";
}
?>

Fungsi diatas akan menampilkan seluruh baris yang ada di dalam tabel mahasiswa_ilkom denganmelakukan perulangan fungsi mysql_fetch_row() sebanyak 5 kali.

Namun masih ada 1 hal lagi yang bisa kita perbaiki dari program diatas.


Menampilkan Tabel MySQL Dengan Perulangan While

Perulangan for mengharuskan kita untuk menulis langsung jumlah perulangan yang harus dilakukan. Pada saat penulisan program, kita telah mengetahui bahwa tabel mahasiswa_ilkom berisi 5 baris, Namun bagaimana jika ternyata data di dalam tabel saat ini tidak lagi 5, tetapi sudah lebih dari itu?

Untuk perulangan dimana banyaknya perulangan tidak diketahui pada saat penulisan program, kita bisa beralih ke perulangan while (Tutorial Cara Penulisan Perulangan While dalam PHP).

Untuk membuat hal ini menjadi lebih mudah, fungsi mysql_fetch_row() akan mengembalikan nilai FALSE jika pointer telah berada di baris terakhir tabel MySQL. Nilai kembalian ini menjadi variabel yang tepat untuk 'kondisi berhenti' pada perulangan while.

Berikut adalah contoh program penggunaan mysql_fetch_row () dengan perulangan while:

<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
 
//gunakan database universitas
$result=mysql_query('USE universitas');

//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_row($result))
{
   echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
   echo "<br />";
}
?>

Konsep perulangan while seperti diatas akan sering anda lihat untuk menampilkan data dari database MySQL.


Selain menggunakan fungsi mysql_fetch_row(), PHP masih memiliki fungsi lainnya untuk menampilkan data tabel dari MySQL, salah satunya adalah fungsi mysql_fecth_array().

Fungsi mysql_fecth_array() lebih fleksibel karena kita tidak hanya bisa menggunakan angka, namun juga 'nama' kolom sebagai key array. Pembahasan tentang fungsi mysql_fecth_array() akan kita pelajari dalam tutorial selanjutnya: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_array().

88 Comments

  1. Ar-sarjan
    17 Jan 15
    • Andre
      19 Jan 15
      • Ainun
        14 Jul 16
        • Andre
          14 Jul 16
  2. Sonny Rosadi
    25 Feb 15
  3. Devi
    14 Mar 15
    • Andre
      14 Mar 15
  4. arif
    17 Mar 15
    • Andre
      18 Mar 15
  5. rekas
    06 Apr 15
    • Andre
      07 Apr 15
  6. Euis Aqmaliyah
    16 May 15
    • Andre
      16 May 15
      • Euis Aqmaliyah
        18 May 15
  7. nurany
    19 May 15
  8. Tony
    01 Aug 15
  9. melani
    04 Aug 15
  10. kingzen
    19 Aug 15
    • Andre
      20 Aug 15
      • kingzen
        20 Aug 15
  11. Ipan Dias Damara
    29 Feb 16
    • Andre
      01 Mar 16
  12. lofty
    23 Sep 16
  13. Yori F maldini
    24 Oct 16
    • Andre
      25 Oct 16
  14. jamalludin
    03 Nov 16
    • Andre
      04 Nov 16
  15. Frankelly Patiharaw
    14 Dec 16
    • Andre
      14 Dec 16
  16. Frankelly Patiharaw
    15 Dec 16
    • Andre
      15 Dec 16
      • Firmansyah
        08 May 17
  17. rayhan
    07 Jan 17
    • Andre
      08 Jan 17
      • rayhan
        08 Jan 17
        • Andre
          08 Jan 17
    • mozikun
      25 Jun 19
  18. Sultan Faqih
    25 Jan 17
    • Andre
      26 Jan 17
  19. Malik
    16 Feb 17
    • Andre
      17 Feb 17
      • Malik
        19 Feb 17
  20. lutfiM
    17 Apr 17
    • Andre
      20 Apr 17
  21. Firmansyah
    08 May 17
    • Andre
      08 May 17
      • Adam
        10 May 17
        • Andre
          11 May 17
  22. Alex
    03 Jun 17
    • Andre
      05 Jun 17
  23. Alex
    05 Jun 17
    • Andre
      06 Jun 17
  24. Lepi Natalia
    13 Jun 17
    • Andre
      14 Jun 17
  25. dhimas
    13 Jul 17
    • Andre
      13 Jul 17
  26. Oktavianti siahaan
    14 Jul 17
    • Andre
      15 Jul 17
  27. Anonymous
    16 Jul 17
    • Andre
      17 Jul 17
      • Anonymous
        18 Jul 17
  28. Edy ricardo
    29 Aug 17
    • Andre
      30 Aug 17
  29. Zein
    30 Aug 17
    • Andre
      30 Aug 17
  30. yopa
    21 Oct 17
    • Andre
      22 Oct 17
  31. kinantan
    05 Nov 17
    • Andre
      07 Nov 17
  32. Diah putri
    01 Dec 17
    • Andre
      02 Dec 17
  33. Dani
    12 Jul 18
    • Dani
      15 Jul 18
      • Andre
        16 Jul 18
        • Dani
          19 Jul 18
  34. Dani
    19 Jul 18
  35. damar pratama
    18 Dec 18
  36. erlan
    23 Apr 19
    • Andre
      24 Apr 19
  37. retno sr
    13 Aug 19
  38. ris davit
    29 Aug 19
    • Andre
      29 Aug 19
  39. Ahmad Gunawan
    03 Nov 19
    • Andre
      04 Nov 19
  40. Anonymous
    18 Mar 20

Add Comment

Leave a Reply to Edy ricardo Cancel reply