Menampilkan Tabel MySQL dengan fungsi mysql_fetch_array
Fungsi mysql_fetch_array() pada dasarnya hampir sama dengan fungsi mysql_fetch_row(), namun fungsi mysql_fetch_array() memberikan alternatif cara menampilkan
data MySQL dengan lebih mudah.
Jika dalam fungsi mysql_fetch_row() hasil fungsinya berupa array
dengan key atau indexnya berupa angka, seperti : $row[1],
$row[2] dan $row[3], maka di dalam mysql_fetch_array(), kita bisa menggunakan nama kolom dari tabel
MySQL sebagai key atau index array seperti berikut ini:$row[‘nim’],
$row[‘nama’] dan $row[‘umur’]. Cara penulisan seperti ini akan memudahkan
pembuatan program.
Selain menggunakan nama kolom pada index array, fungsi mysql_fetch_array() juga bisa menggunakan index penomoran
kolom seperti mysql_fetch_row(), atau bahkan keduanya sekaligus. Untuk mengatur fitur ini,
fungsi mysql_fetch_array() membutuhkan parameter tambahan.
Berikut adalah format dasar penulisan fungsi mysql_fetch_array() dalam PHP:
$row=
mysql_fetch_array($result,[’tipe_hasil’])
|
·
$row adalah variabel yang akan menampung hasil
fungsi mysql_fetch_array(). Hasil dari fungsi mysql_fetch_array()
berupa tipe data array dengan key yang bergantung kepada
konstanta ‘tipe_hasil’.
·
$result adalah variabel hasil
menjalankan query MySQL yang berasar dari fungsimysql_query().
·
’tipe_hasil’ merupakan konstanta opsional yang
digunakan untuk mengatur index array dari hasil fungsi mysql_fetch_array().
Konstanta yang bisa digunakan adalah salah satu dari ketiga nilai
berikut: MYSQL_NUM, MYSQL_ASSOC atau MYSQL_BOTH.
Jika argumen ini tidak ditulis, nilai defaultnya adalah MYSQL_BOTH.
Perbedaan mysql_fetch_array:
MYSQL_NUM, MYSQL_ASSOC dan MYSQL_BOTH
Cara mengakses array dari fungsi mysql_fetch_array() bergantung kepada argumen ‘tipe_hasil’.
Argumen ‘tipe_hasil’ hanya
bisa berisi satu dari 3 konstanta: MYSQL_NUM, MYSQL_ASSOC atauMYSQL_BOTH.
Jika argumen keduadari fungsi mysql_fetch_array() diisi MYSQL_NUM, maka index array akan menjadi angka (sama
seperti hasil mysql_fetch_row()), dan bisa ditampilkan seperti: $row[1], $row[2] dan $row[3].
Jika argumen kedua diisi MYSQL_ASSOC, index array akan menjadi nama kolom, dan bisa
ditampilkan seperti: $row[‘nim’], $row[‘nama’] dan $row[‘umur’].
Opsi ketiga, jika argumen diisi MYSQL_BOTH maka index array mendukung 2
pemanggilan, yakni berupa angka dan nama kolom.
Sama seperti fungsi mysql_fetch_row(), mysql_fetch_row() hanya membaca 1 baris pada sekali
pemanggilan. Jika tabel kita terdiri dari 5 baris, maka fungsi mysql_fecth_array() harus diulang sebanyak 5 kali (atau
menggunakan metoda perulangan while seperti yang kita lakukan pada tutorialmysql_fetch_row().
Cara Penggunaan Fungsi mysql_fecth_array()
Agar lebih mudah dipahami, langsung saja kita masuk kedalam
contoh kode program. Masih menggunakan contoh database universitas yang dibuat pada tutorial mysql_fetch_row(), kali ini saya akan menggunakan
fungsi mysql_fetch_array() untuk menampilkan hasilnya.
Berikut adalah contoh
penggunaan fungsi mysql_fetch_array() dalam PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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_array($result,
MYSQL_NUM))
{
echo
"$row[0]
$row[1] $row[2] $row[3] $row[4]";
echo
"<br
/>";
}
?>
|
Jika diperhatikan, kode program diatas sama persis dengan contoh
terakhir pada tutorialmysql_fetch_row(), hanya pada baris ke 10 saya menggantinya dengan
fungsi mysql_fetch_array().
Konstanta MYSQL_NUM pada argumen ke-2 fungsi mysql_fetch_array(), menginstruksikan kepada PHP bahwa nilai
kembalian untuk variabel $row adalah array dengan index angka, sehingga hasilnya sama persis dengan mysql_fetch_row() yang diakses dengan $row[0] untuk kolom pertama tabel,$row[1] untuk kolom kedua tabel, dan seterusnya.
Jika menggunakan konstanta MYSQL_NUM akan membuat fungsi mysql_fetch_array() sama denganmysql_fetch_row(), bagaimana dengan MYSQL_ASSOC? Dalam contoh berikut, saya akan mengubah
konstanta fungsi mysql_fetch_array() dengan MYSQL_ASSOC :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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_array($result,MYSQL_ASSOC))
{
echo
$row['nim']."
".$row['nama']." ".$row['umur']." ";
echo
$row['tempat_lahir']."
".$row['IPK'];
echo
"<br
/>";
}
?>
|
Pada contoh kali ini, pada baris ke-10, fungsi mysql_fetch_array() saya panggil dengan konstantaMYSQL_ASSOC sebagai argumen kedua. Dengan cara ini,
hasil kembalian query, berupa array dengan index nama kolom dari tabel MySQL.
Karena menggunakan konstanta MYSQL_ASSOC, cara pengaksesan nilai $row harus menggunakan index nama kolom
tabel. Jika di dalam MySQL nama kolom adalah ‘nim’, maka untuk menampilkan data kolom tersebut,
kita menggunakan $row[‘nim’].
Jika di dalam MySQL nama kolom adalah‘tempat_lahir’, untuk menampilkan data kolom tersebut,
adalah dengan $row[‘tempat_lahir’], dan seterusnya.
Dengan cara ini, kita
akan mudah untuk merancang tampilan tabel MySQL, terutama jika urutan kolom
tidak ditampilkan secara berurutan.
PHP juga memiliki fungsi mysql_fetch_assoc() yang
hampir sama dengan fungsimysql_fetch_array($result,MYSQL_ASSOC).
Fungsi mysql_fetch_assoc() juga mengembalikan hasil array
dengan nama kolom sebagai index array. Fungsi ini juga umum digunakan. Berikut
adalah contoh penggunaan fungsi mysql_fetch_assoc:
1
2
3
4
5
6
7
8
9
10
|
<?
//tampilkan tabel
mahasiswa_ilkom
$result=mysql_query('SELECT
* FROM mahasiswa_ilkom');
while ($row=mysql_fetch_assoc($result))
{
echo
$row['nim']."
".$row['nama']." ".$row['umur']." ";
echo
$row['tempat_lahir']."
".$row['IPK'];
echo
"<br
/>";
}
?>
|
Untuk pilihan konstanta terakhir: MYSQL_BOTH, MySQL akan mengembalikan nilai $row yang
bisa diakses baik dengan index angka maupun dengan index nama kolom. Berikut adalah contoh kode programnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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_array($result,MYSQL_BOTH))
{
echo
$row[0]."
".$row['nama']." ".$row['umur']." ";
echo
$row[3]."
".$row['IPK'];
echo
"<br
/>";
}
?>
|
Seperti yang terlihat, saya membuat perintah $row[0] dan $row[‘nama’] dalam pemanggilan yang sama, dan PHP
dapat menampilkan hasil sesuai dengan yang diharapkan.
Perlu diketahui, dari panduan resmi PHP, fungsi mysql_fetch_array() ditegaskan
tidak akan lebih lambat dari pada fungsi mysql_fetch_row() atau mysql_fetch_assoc(), walaupun
fungsimysql_fetch_array() menawarkan fitur tambahan. Pengaksesan
array hasil MySQL dengan menggunakan angka maupun nama kolom sebagai index array
akan sama cepatnya.
Pada dasarnya, pengaksesan MySQL melalui PHP, hanya membutuhkan
3 fungsi utama, yaknimysql_connect(), mysql_query(), dan mysql_fecth_array(). Sampai disini, kita telah mempelajari
ketiga fungsi penting tersebut.
No comments:
Post a Comment