--> Skip to main content

Perbedaan mysqli_fetch_row, mysqli_fetch_assoc dan mysqli_fetch_array


Pada kesempatan kali ini, tutorial dasar-dasar pemrograman php akan membahas perbedaan dari 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 nama kampus, 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 :
Data tabel Mahasiswa



Langkah Ke-2

Salin kode program php berikut dan simpan dengan nama file numrow.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 :
Menampilkan Data tabel Mahasiswa


Langkah Ke-3

Ubahlah atau modifikasi file numrow.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 :
Error Data tabel Mahasiswa

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 menggantikan mysqli_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 :
Error Akses Database


Langkah Ke-5

Pada langkah ke-5 ini kita akan memodifikasi program dari langkah ke-4 yakni file fetchassoc.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 fungsi mysqli_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 :
Error Fetcharray


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)

Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar