Setelah sebelumnya kita bahas mengenai cara menghubungkan MySQL dengan PHP, pada kesempatan kali ini kita akan membahas bagaimana cara menampilkan data tabel MySQL Dengan PHP. Show
Telah disebutkan pada artikel tersebut bahwa kita tidak disarankan menggunakan fungsi yang berawalan 0 seperti 1, dll, karena fungsi tersebut sudah dihapus pada PHP versi 7, sehingga aplikasi kita dijamin ke depan tidak akan berjalan lagi.Untuk itu pada kesempatan ini kita akan menggunakan fungsi yang diawali dengan 2 (dengan tambahan i)Daftar Isi: Daftar IsiDownload file yang digunakan pada tutorial ini: Download File Latihan I. Fungsi Yang Dapat Digunakan Untuk Mengambil dan Menampilkan Data Tabel MySQLFungsi yang digunakan untuk menjalankan semua query MySQL adalah 3, karena kita akan mengambil data, maka perintah SQL yang kita gunakan adalah SELECT, sehingga fungsinya menjadi 4Nah, untuk dapat menampilkan data hasil query, kita perlu mengakses data tersebut, untuk mengakses nya kita dapat menggunakan fungsi yang berawalan 5 (fetch = mengambil). Adapun fungsi yang tersedia adalah:
Perbedaan ketiga fungsi ini dapat digambarkan sebagai berikut: Untuk lebih memahami lebih jauh tentang array, sobat dapat mempelajarinya pada artikel ini: Memahami Array Pada PHP Dari ketiga fungsi tersebut, terlihat bahwa yang paling efisien adalah menggunakan 9, karena hanya menghasilkan satu jenis array, namun kita bebas menggunakan ketiganya karena perbedaan waktu eksekusi yang tidak signifikan.Perulangan (loop) yang digunakanSemua fungsi diatas, kecuali 2 setiap kali dijalankan akan menghasilkan satu baris row mulai dari row ke-1 (pemanggilan pertama),  ke-2 (pemanggilan ke 2), dan seterusnya hingga selesai, jadi kita tidak tahu berapa kali kita akan mengulang fungsi tersebut.Karena sifatnya yang demikian MAKA kita menggunakan perulangan 3, lebih jauh tentang perulangan while, dapat dibaca pada artikel: Memahami While dan Do While Pada PHP Dengan Contoh KasusII. Buat Tabel Pada DatabaseUntuk dapat mencoba script yang akan kita praktekkan nanti, saya akan menggunakan contoh data penjualan yang disimpan pada tabel sales dan database tutorial Adapun bentuk tabel dan datanya adalah sebagai berikut: id_transaksiid_produktgl_transaksihargaid_pelanggan11002016-09-20265000121002016-10-11270000231012016-08-17250000241022016-02-08255000151002016-06-052900003 Untuk membuatnya, buat file insert_data.php kemudian copy-paste script berikut (pastikan belum ada tabel sales di database):
Selanjutnya jalankan file tersebut, jika berhasil, maka akan muncul pesan seperti ini: III. Menampilkan Data Tabel MySQL Dengan Fungsi <?php $db_host = 'localhost'; // Nama Server $db_user = 'root'; // User Server $db_pass = ''; // Password Server $db_name = 'tutorial'; // Nama Database $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (!$conn) { die ('Gagal terhubung MySQL: ' . mysqli_connect_error()); } $sql = 'SELECT id_produk, tgl_transaksi, harga, kuantitas FROM sales'; $query = mysqli_query($conn, $sql); if (!$query) { die ('SQL Error: ' . mysqli_error($conn)); } echo '<table> <thead> <tr> <th>ID PRODUK</th> <th>TGL TRANSAKSI</th> <th>HARGA</th> <th>KUANTITAS</th> </tr> </thead> <tbody>'; while ($row = mysqli_fetch_array($query)) { echo '<tr> <td>'.$row['id_produk'].'</td> <td>'.$row['tgl_transaksi'].'</td> <td>'.number_format($row['harga'], 0, ',', '.').'</td> <td class="right">'.$row['kuantitas'].'</td> </tr>'; } echo ' </tbody> </table>'; // Apakah kita perlu menjalankan fungsi mysqli_free_result() ini? baca bagian VII mysqli_free_result($query); // Apakah kita perlu menjalankan fungsi mysqli_close() ini? baca bagian VII mysqli_close($conn);6Fungsi yang pertama yang akan kita gunakan adalah fungsi Contoh kode:
Hasil yang kita peroleh adalah: Penjelasan:
Seperti telah kita bahas sebelumnya bahwa kita menggunakan perulangan 3 untuk menjalankan 6 karena fungsi ini setiap dipanggil hanya menghasilkan 1 row yang berurutan.Untuk membuktikannya, mari kita coba menjalankan 6 secara manual:
Hasil yang kita peroleh: IV. Menampilkan Data Tabel Database MySQL Dengan Fungsi <?php $db_host = 'localhost'; // Nama Server $db_user = 'root'; // User Server $db_pass = ''; // Password Server $db_name = 'tutorial'; // Nama Database $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (!$conn) { die ('Gagal terhubung MySQL: ' . mysqli_connect_error()); } $sql = 'SELECT id_produk, tgl_transaksi, harga, kuantitas FROM sales'; $query = mysqli_query($conn, $sql); if (!$query) { die ('SQL Error: ' . mysqli_error($conn)); } echo '<table> <thead> <tr> <th>ID PRODUK</th> <th>TGL TRANSAKSI</th> <th>HARGA</th> <th>KUANTITAS</th> </tr> </thead> <tbody>'; while ($row = mysqli_fetch_array($query)) { echo '<tr> <td>'.$row['id_produk'].'</td> <td>'.$row['tgl_transaksi'].'</td> <td>'.number_format($row['harga'], 0, ',', '.').'</td> <td class="right">'.$row['kuantitas'].'</td> </tr>'; } echo ' </tbody> </table>'; // Apakah kita perlu menjalankan fungsi mysqli_free_result() ini? baca bagian VII mysqli_free_result($query); // Apakah kita perlu menjalankan fungsi mysqli_close() ini? baca bagian VII mysqli_close($conn);9Seperti telah disampaikan sebelumnya, fungsi ini sama dengan fungsi 6, hanya saja, array yang dihasilkan hanya berbentuk associative array (array dengan key berupa nama field dari tabel/temporary field).Melanjutkan contoh sebelumnya, untuk menggunakan fungsi ini, kita hanya perlu mengubah fungsi dari 6 menjadi 9 sebagai berikut:
Output yang dihasilkan juga sama, yaitu: Penjelasan: Penjelasannya sama seperti sebelumnya, hanya saja pada baris ke 29 kita mengubah fungsi 6 menjadi 9V. Menampilkan Data Tabel MySQL Dengan Fungsi <?php $sql = 'SELECT id_produk, tgl_transaksi, harga, kuantitas FROM sales'; $query = mysqli_query($conn, $sql); $row = mysqli_fetch_array($query); echo 'Produk: ' . $row['id_produk'] . ' Tgl Transaksi: ' . $row['tgl_transaksi'] . ' Harga: ' . $row['harga'] . '</br/>'; $row = mysqli_fetch_array($query); echo 'Produk: ' . $row['id_produk'] . ' Tgl Transaksi: ' . $row['tgl_transaksi'] . ' Harga: ' . $row['harga'] . '</br/>'; $row = mysqli_fetch_array($query); echo 'Produk: ' . $row['id_produk'] . ' Tgl Transaksi: ' . $row['tgl_transaksi'] . ' Harga: ' . $row['harga'] . '</br/>';0Fungsi ini juga sama dengan fungsi 6, hanya saja bentuk array yang dihasilkan hanya indexed array (array dengan key 0, 1, 2, 3, dst…)Contoh penggunaan query ini sama dengan contoh sebelumnya, hanya saja kita ubah fungsi 9 menjadi 0 dan kita akses field berdasarkan index, bukan nama field, sebagai berikut:
Hasil yang kita peroleh juga sama: Penjelasan: Penjelasan sama seperti pada fungsi 6, bedanya, pada baris 29 kita menggunakan 0 dengan memanggil nama field berdasarkan index nya.Urutan index diambil dari nama field yang digunakan pada query SELECT yang diurutkan dari yang paling kiri ke kanan: VI. Membuat dan Menampilkan Data Temporary FieldMelanjutkan sebelumnya, untuk mempermudah memahami index ini, mari kita buat temporary field yang bernama 8, yang merupakan pengalian dari harga x kuantitas.Query nya perlu kita ubah menjadi:
Hasil yang kita peroleh adalah: Penjelasan: Kita dapat membuat temporary field dengan menambahkan 9, atau tanpa menggunakan 9 ( 1)Saya lebih memilih menggunakan 9 karena lebih mudah untuk mengidentifikasi bahwa fileld tersebut merupakan field baru hasil query (temporary field)Field-field yang akan menjadi key dari array hasil query adalah seperti gambar berikut: Jika menggunakan fungsi 0, maka urutan index seperti gambar berikut:VII. Apakah Perlu Menjalankan Fungsi $sql = 'SELECT id_produk, tgl_transaksi, harga, kuantitas, harga*kuantitas AS total_byr FROM sales'; $query = mysqli_query($conn, $sql); if (!$query) { die ('SQL Error: ' . mysqli_error($conn)); } echo '<table> <thead> <tr> <th>ID PRODUK</th> <th>TGL TRANSAKSI</th> <th>KUANTITAS</th> <th>HARGA</th> <th>TOTAL BYR</th> </tr> </thead> <tbody>'; while ($row = mysqli_fetch_array($query)) { echo '<tr> <td>'.$row['id_produk'].'</td> <td>'.$row['tgl_transaksi'].'</td> <td>'.$row['kuantitas'].'</td> <td>'.$row['harga'].'</td> <td>'.number_format($row['total_byr'], 0, ',', '.').'</td> </tr>'; } echo ' </tbody> </table>';4 dan $sql = 'SELECT id_produk, tgl_transaksi, harga, kuantitas, harga*kuantitas AS total_byr FROM sales'; $query = mysqli_query($conn, $sql); if (!$query) { die ('SQL Error: ' . mysqli_error($conn)); } echo '<table> <thead> <tr> <th>ID PRODUK</th> <th>TGL TRANSAKSI</th> <th>KUANTITAS</th> <th>HARGA</th> <th>TOTAL BYR</th> </tr> </thead> <tbody>'; while ($row = mysqli_fetch_array($query)) { echo '<tr> <td>'.$row['id_produk'].'</td> <td>'.$row['tgl_transaksi'].'</td> <td>'.$row['kuantitas'].'</td> <td>'.$row['harga'].'</td> <td>'.number_format($row['total_byr'], 0, ',', '.').'</td> </tr>'; } echo ' </tbody> </table>';5?Pada contoh diatas, ketika menampilkan data tabel MySQL,  kita selalu menggunakan 6 dan 7, apa kegunaan kedua fungsi ini dan apakah kita perlu menjalankannya?mysqli_free_result()Setiap kali kita menjalankan perintah MySQL yang menghasilkan data (perintah SELECT) maka PHP akan menyimpan data tersebut pada memori komputer (RAM), hal ini sama ketika kita mendefinisikan variabel, dimana nilai dari variabel tersebut akan disimpan pada memory 8.Nah, untuk menghapus data pada memory ini, pada variabel kita cukup memberikan nilai null atau sejenisnya ( 9),  sedangkan pada hasil query kita perlu menggunakan perintah 6.Catatan: PHP tetap akan menjalankan perintah ini di setiap akhir eksekusi script PHP. Apakah fungsi ini perlu dijalankan? YA, jika query kita menghasilkan data yang sangat besar, dan di sisa script PHP kita masih banyak kode yang membutuhkan space memory atau kita tidak tahu apa yang terjadi di sisa script PHP yang ada (seperti pada pembuatan plugin) TIDAK, jika query menghasilkan data yang kecil dan kita tahu bahwa sisa dari  script PHP kita hanya membutuhkan memory yang kecil. mysqli_close()Fungsi ini berfungsi untuk menutup koneksi MySQL, apakah ini perlu kita jalankan? YA, jika kita ingin membiasakan sesuatu yang baik, karena di bahasa pemrograman lain koneksi ini akan terus terbuka jika kita tidak menutupnya secara manual. TIDAK, jika kita ingin praktis, karena PHP akan selalu menutup koneksi ini di akhir eksekusi script PHP. PHP merupakan bahasa inerpreter, yang artinya tidak berhubungan langsung dengan fisik komputer, padahal setiap bahasa pemrograman selalu berhubungan dengan fisik komputer, nah pada PHP, ada engine sendiri yang menterjemahkan bahasa PHP ke bahasa komputer yang sampai saat ini menggunakan Zend Engine. Nah, Zend Engine ini yang akan otomatis menutup semua koneksi pada database pada setiap akhir eksekusi script PHP. Download file yang digunakan pada tutorial ini: Download File Latihan VIII. TambahanTerdapat pertanyaan seperti ini: bagaimana jika kita ingin menskip beberapa data? misal yang ditampilkan hanya baris 2,3, dan 4, tidak keseluruhan data. Untuk keperluan seperti ini, kita bisa menggunakan statement continue untuk melewati loop dan break untuk menghentikan loop, sebagai berikut:
Demikian pembahasan mengenai cara menampilkan data tabel MySQL dengan PHP, semoga bermanfaat. Artikel Terkait: Menampilkan Data MySQL Ke Dalam Tabel HTML Subscibe NowSuka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun. Dono says: Tabel 1 variabel didatabase |idvar|namavar |kelompok ----------------------------- | 01 |sedikit | jenis | 02 | sedang | jenis | 03 | banyak | jenis | 04 | ringan | fungsi | 05 | sedang |fungsi | 06 | hebat | fungsi | 07 | ringan | kriteria | 08 | sedang | kriteria | 09 | hebat | kriteria | 10 | ya | riwayat | 11 | tidak | riwayat | 12 | ringan | kualifikasi | 13 | sedang | kualifikasi | 14 | hebat | kualifikasi ----------------------------- Tabel 2 Aturan didatabase Idaturan|jenis|fungsi|kriteria|riwayat|kualifikasi| --------------------------------------------------- | A1 | 01 |04 |07 |10 |12 | | A2 | 02 |05 |08 |11 |13 | | A3 | 03 |06 |09 |10 |12 | --------------------------------------------------- Dan setrusnya. Id | jenis | fungsi | kriteria | riwayat|kualifikasi| ---------------------------------------------------- | A1| sedikit| ringan | ringan |ya | ringan| | A2| sedang |sedang |sedang | tidak |sedang | | A3| banyak |hebat | hebat | ya |hebat | ---------------------------------------------------- Dan seterusnya. Makmur says: Halo mas master, mohon skrip code phpnya, kasusnya Tabel kegiatan Tabel Bulan Outputnya : Mohon bantuannya mas master .. pleaseee Taruna Ersa says: halo pak Agus, saya ingin bertanya soal query select pada sql.. saya simulasikan dengan tabel hasil query berikut : Leaderboard periode 2021-01 : No | Guest ID | Level | Periode | Score | Leaderboard periode 2021-02 : No | Guest ID | Level | Periode | Score | Leaderboard periode 2021-03 : No | Guest ID | Level | Periode | Score | jika dari hasil di tabel diatas, saya ingin mengambil nilai periode dari setiap user yang pernah ada di tabel tersebut bagaimana ya pak? berikut kira-kira hasil yang diinginkan, |