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

Mengecek Kelengkapan Data yang Tersimpan di MySQL Menggunakan PHP

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

1 Response to "Mengecek Kelengkapan Data yang Tersimpan di MySQL Menggunakan PHP"

  1. waduh gagal paham saya mas, kayak kodingnya blogger bikin puyeng

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin