Perbedaan mysqli_fetch_row, mysqli_fetch_assoc dan mysqli_fetch_array
mysqli_fetch_row
, mysqli_fetch_assoc
dan mysqli_fetch_array
Pada tutorial sebelumnya yang berjudul Cara Menampilkan Data Dari Database, kita menggunakan fungsi
mysqli_fetch_array
dalam menyimpan data dalam bentuk array berupa numerik atau string (nama field). Dimana kolom (field) dari tabel tersebut dapat diakses dengan menggunakan nama kolom atau index dari database tersebut.Selain menggunakan
mysqli_fetch_array
, kita juga dapat menggunakan mysqli_fetch_row
dan mysqli_fetch_assoc
. Nah dalam tutorial ini, kita akan mengenali perbedaan ketiga fungsi tersebut.Langkah Ke-1
Buat database dengan namakampus
, lalu buat tabel dengan nama mahasiswa
seperti script sql dibawah ini :CREATE TABLE IF NOT EXISTS `mahasiswa` (
`nim` int(11) NOT NULL,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` enum('Pria','Wanita') NOT NULL,
PRIMARY KEY (`nim`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Selanjutnya kita menambahkan beberapa data ke dalam tabel tersebut seperti script sql di bawah ini :
INSERT INTO `mahasiswa` (`nim`, `nama`, `jenis_kelamin`) VALUES
(210101011, 'Doni Krimar', 'Pria'),
(210101012, 'Putri Rahayu', 'Wanita'),
(210101013, 'Dian Mahara', 'Wanita'),
(210101014, 'Reza Rahadi', 'Pria');
Dengan demikian kita akan mendapatkan susunan tabel
mahasiswa
pada database kampus seperti gambar berikut :Langkah Ke-2
Salin kode program php berikut dan simpan dengan nama filenumrow.php
yang disimpan dalam folder phpschool/diffaccess
.<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_row($result))
{
echo "<tr>";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Jalankan file
numrow.php
tersebut pada browser, maka akan muncul tampilan seperti gambar di bawah ini :Langkah Ke-3
Ubahlah atau modifikasi filenumrow.php
dimana kita mengakses datanya menggunakan nama kolom(field) seperti yang ditunjukkan oleh kode program php berikut ini :<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_row($result))
{
echo "<tr>";
echo "<td>" . $row['nim'] . "</td>";
echo "<td>" . $row['nama'] . "</td>";
echo "<td>" . $row['jenis_kelamin'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Lalu apa yang terjadi jika kita jalankan file tersebut ???
Tentunya kita akan mendapat informasi atau pesan kesalahan seperti yang ditunjukkan oleh gambar berikut :
Note: Kita hanya bisa menggunakan array dalam bentuk numerik(index) untuk mengakses data-datanya. Jika menggunakan nama kolom(field), maka akan error.
Langkah Ke-4
Pada langkah ke-4 ini kita akan menggunakan kode program seperti pada langkah ke-2, namun kita akan menggantikanmysqli_fetch_row
dengan mysqli_fetch_assoc
.Salin kode program berikut dan simpan dengan nama file
fetchassoc.php
:<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Kode program dari langkah ke-4 ini sama dengan kode program dari langkah ke-2, hanya saja telah kita gantikan
mysqli_fetch_row
menjadi mysqli_fetch_assoc
.Coba jalankan program dari file
fetchassoc.php
pada browser anda. Maka akan tampak error seperti gambar di bawah ini :Langkah Ke-5
Pada langkah ke-5 ini kita akan memodifikasi program dari langkah ke-4 yakni filefetchassoc.php
dengan menggunakan pengkasesan data berupa nama kolom (field) seperti berikut :<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['nim'] . "</td>";
echo "<td>" . $row['nama'] . "</td>";
echo "<td>" . $row['jenis_kelamin'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Lalu jalankan program
fetchassoc.php
pada browser. Seperti apa hasilnya ??.Tentunya program berhasil dengan baik menampilkan data, sama seperti output (tampilan gambar) pada langkah ke-2.
Note:Kita hanya bisa menggunakan array dalam bentuk string, yakni dengan menggunakan nama kolom(field) untuk mengakses data-datanya. Jika menggunakan array dalam bentuk numerik (index) maka akan error. Dengan demikian mysqli_fetch_assoc kebalikan dari mysqli_fetch_row
Langkah Ke-6
Pada langkah ke-6 ini, kita akan menggunakan fungsimysqli_fetch_array
. Untuk itu simpan kode program di bawah ini dengan nama file fetcharray.php
<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "<td>" . $row[2] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Jalankan file
fetcharray.php
tersebut pada browser anda, maka muncul tampilan seperti gambar di bawah ini :Kemudian modifikasi program
fetcharray.php
, dimana kita akan menggunakan nama kolom(field) dalam mengakses data-datanya seperti kode program berikut :<?php
$con=mysqli_connect("localhost","root","","kampus");
$query="SELECT * FROM mahasiswa";
$result = mysqli_query($con, $query);
echo "<style>
table, th, td {
border: 1px solid black;
} </style>";
echo "<b> Database Output</b> <br><br>";
echo "<table>";
echo "<tr>";
echo "<th>NIM</th>";
echo "<th>Nama</th>";
echo "<th>Jenis Kelamin</th>";
echo "</tr>";
while($row =mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['nim'] . "</td>";
echo "<td>" . $row['nama'] . "</td>";
echo "<td>" . $row['jenis_kelamin'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Setelah itu, jalankan kembali file
fetcharray.php
pada browser. Apa yang terjadi ??. Ternyata data dapat ditampilkan dengan baik dan tidak terjadi error. Note:Dengan menggunakan mysqli_fetch_array
, kita dapat mengakses datanya menggunakan array dalam bentuk numerik(index) dan juga menggunakan nama kolom(field)