Mengecek Kelengkapan Data yang Tersimpan di MySQL Menggunakan PHP
Dimislkan dalam sebuah contoh kasus kita ingin memeriksa kelengkapan data yang sudah tersimpan pada MySQL dari setiap user, jika sudah lengkap kita ingin menampilkan keterangan tertentu dan juga berapa jumlah kolom/data yang belum diisi
Jadi kita sebenarnya akan memeriksa berapa jumlah NULL data pada setiap baris data yang yang tersimpan dalam MySQL dengan contoh data misal seperti berikut
MariaDB [latihan]> select * FROM tb_dokter;
+-----------+--------------------------+-----------+-------------+--------------+
| id_dokter | nama_dokter | spesialis | alamat | kontak |
+-----------+--------------------------+-----------+-------------+--------------+
| 1 | dr. Aldi | NULL | NULL | NULL |
| 2 | dr. Fariz | NULL | NULL | NULL |
| 3 | dr. Diandara Purnamasari | THT | NULL | NULL |
| 4 | dr. Ira Widiantini | Gigi | Pangandaran | 087870693200 |
+-----------+--------------------------+-----------+-------------+--------------+
atau sebenarnya jika proses pengecekan data ini menggunakan MySQL maka outpun yang ingin dihasilkan pada php adalah sebagai berikut
MariaDB [latihan]> SELECT id_dokter, (SUM(ISNULL(nama_dokter)) +SUM(ISNULL(spesialis))
-> +SUM(ISNULL(alamat)) + SUM(ISNULL(kontak)))
-> AS jml_null
-> FROM tb_dokter
-> GROUP by id_dokter;
+-----------+----------+
| id_dokter | jml_null |
+-----------+----------+
| 1 | 3 |
| 2 | 3 |
| 3 | 2 |
| 4 | 0 |
+-----------+----------+
4 rows in set (0.00 sec)
Untuk Mengecek Kelengkapan Data yang Tersimpan di MySQL Menggunakan PHP Anda bisa melihat contoh kode dibawah ini
<?php
require_once('db.php');
require_once('function.php');
$obj = new Crud;
?>
<!DOCTYPE html>
<html>
<head>
<title>Latihan Check Count Empty String</title>
<style type="text/css">
table.items {
font-size: 12pt;
border-collapse: collapse;
border: 3px solid #880000;
}
td { vertical-align: top;
}
table thead th { background-color: #EEEEEE;
text-align: center;
}
table tfoot td { background-color: #AAFFEE;
text-align: center;
}
.container{ margin: 15px; }
</style>
</head>
<body>
<table class="items" cellpadding="4" width="70%" border="1">
<thead>
<tr>
<th colspan="7" style="text-transform: uppercase;">Mengecek Kelengkapan Data - ROOT93.CO.ID</th>
</tr>
<tr>
<th>ID Dokter</th>
<th>Nama Dokter</th>
<th>Spesialis</th>
<th>Alamat</th>
<th>Kontak</th>
<th>Nilai</th>
<th>Lengkap (Y/N))</th>
</tr>
</thead>
<tbody>
<?php
$data = $obj->selectDokter();
$no=0;
while($row=$data->fetch_array())
{
$data1=array($row[0], $row[1], $row[2], $row[3], $row[4]);
$count = count($data1);
$count_filter= count(array_filter($data1));
?>
<tr>
<?php for ($i=0; $i <$count ; $i++) { ?>
<td><?=$row[$i]?></td>
<?php } ?>
<td><?=($count-$count_filter)?></td>
<td><?php echo ($count-$count_filter)==0?'Y':'N'; ?>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
Output yang dihasilkan dari contoh kode diatas akan terlihat seperti dibawah ini
Nilai yang dihasilkan bukan hanya sekedar mengecek apakah data lengkap atau tidak, tetapi juga menampilkan berapa jumlah data yang belum dilengkapi dengan menampilkannya pada kolom nilai
Contoh Kode PHP Alternatif lain untuk mengecek kelengkapan data yang tersimpan
<?php
require_once('koneksi.php');
require_once('function.php');
$obj = new Crud;
?>
<!DOCTYPE html>
<html>
<head>
<title>Latihan Check Count Empty String</title>
<style type="text/css">
table.items {
font-size: 12pt;
border-collapse: collapse;
border: 3px solid #880000;
}
td { vertical-align: top;
}
table thead th { background-color: #EEEEEE;
text-align: center;
}
table tfoot td { background-color: #AAFFEE;
text-align: center;
}
.container{ margin: 15px; }
</style>
</head>
<body>
<table class="items" cellpadding="4" width="70%" border="1">
<thead>
<tr>
<th colspan="7" style="text-transform: uppercase;">Mengecek Kelengkapan Data - ROOT93.CO.ID</th>
</tr>
<tr>
<th>ID Dokter</th>
<th>Nama Dokter</th>
<th>Spesialis</th>
<th>Alamat</th>
<th>Kontak</th>
<th>Nilai</th>
<th>Lengkap (Y/N))</th>
</tr>
</thead>
<tbody>
<?php
$data = $obj->selectDokter();
$no=0;
while($row=$data->fetch_array())
{
$data1=array($row[0], $row[1], $row[2], $row[3], $row[4]);
$incomplete_count = 0;
foreach ($data1 as $value) {
if (in_array($value, array(null, '', false))) {
$incomplete_count++;
}
}
?>
<tr>
<?php for ($i=0; $i <count($data1) ; $i++) { ?>
<td><?=$row[$i]?></td>
<?php } ?>
<td><?=$incomplete_count?></td>
<td><?php echo $incomplete_count==0?'Y':'N'; ?>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
Contoh Alternatif lain, misalnya variabel dalam baris kode
$data1=array($row[0], $row[1], $row[2], $row[3], $row[4]);
Untuk melakukan hal tersebut, Anda perlu menyimpan nilai $data1 kedalam array $data1[]=$row[$i] kemudian menyimpan didalam fungsi array_walk untuk menghitung data yang masih kosong dan melakukan looping sesuai dengan jumlah baris didalam tabel, dimana array_filter akan diganti dengan fungsi array_walk untuk menghitung berapa nilai kosong pada setiap baris data. Sehingga nantinya variabel array $data1 memiliki nilai array dengan jumlah baris yang sesuai dengan tabel, jadi kita tidak perlu menulisnya secara manual. Berikut Contohnya
<?php
require_once('koneksi.php');
require_once('function.php');
$obj = new Crud;
?>
<!DOCTYPE html>
<html>
<head>
<title>Latihan Check Count Empty String</title>
<style type="text/css">
table.items {
font-size: 12pt;
border-collapse: collapse;
border: 3px solid #880000;
}
td { vertical-align: top;
}
table thead th { background-color: #EEEEEE;
text-align: center;
}
table tfoot td { background-color: #AAFFEE;
text-align: center;
}
.container{ margin: 15px; }
</style>
</head>
<body>
<table class="items" cellpadding="4" width="70%" border="1">
<thead>
<tr>
<th colspan="7" style="text-transform: uppercase;">Mengecek Kelengkapan Data - ROOT93.CO.ID</th>
</tr>
<tr>
<th>ID Dokter</th>
<th>Nama Dokter</th>
<th>Spesialis</th>
<th>Alamat</th>
<th>Kontak</th>
<th>Nilai</th>
<th>Lengkap (Y/N))</th>
</tr>
</thead>
<tbody>
<?php
$data = $obj->selectDokter();
$num_rows = $data->num_rows;
while($row=$data->fetch_array())
{
$data1 = array();
for ($i = 0; $i <$num_rows; $i++)
{
$data1[] = $row[$i];
}
$incomplete_count = 0;
array_walk($data1, function($value) use (&$incomplete_count) {
if (empty($value)) {
$incomplete_count++;
}
});
?>
<tr>
<?php for ($i=0; $i <count($data1) ; $i++) { ?>
<td><?=$row[$i]?></td>
<?php } ?>
<td><?=$incomplete_count?></td>
<td><?php echo $incomplete_count==0?'Y':'N'; ?>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
Jadi ide pengecekannya ini sebenarnya sangatlah sederhana yaitu dengan menghitung jumlah total baris array keseluruhan dengan count dengan total count yang dilewatkan pada fungsi array_filter, karena nilai yang dilewatkan pada fungsi tersebut akan menghasilkan total count dari nilai yang terisi saja atau dalam kasus ini adalah nilai yang bukan NULL
waduh gagal paham saya mas, kayak kodingnya blogger bikin puyeng
ReplyDelete