Sabtu, 30 Oktober 2021

Pencarian Data PHP

Pada suatu waktu pasti kita akan mencari data yang terkait dalam banyak data yang kita kelola. Ini memang mudah dilakukan apabila data kita tidak mencapai ratusan tapi bagaimana jika data yang kita kelola lebih dari ratusan. Hal sederhana ini akan sangatlah menyiksa. Untuk itu mari kita buat form cari data untuk memudahkan kita dalam berinteraksi dengan data yang kita kelola.

Untuk membuat pencarian kita menggunakan form pencarian yang kita akan tarud diatas tabel data tamu pada file read.php. Mari kita buat formnya dengan script ini.

        <!--- ini form pencarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button><input type="text" name="namadpn" required></div>

        </form>

Bila kita menekan tombol cari maka kita akan mengirimkan namadpn yang dicari. Setelah itu buatlah file search.php dimana kita akan menampilkan data yang ditemukan berikut juga form pencariannya lagi sehingga pengguna tidak perlu kembali ke halaman read.php untuk mencari data yang lain.

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>CARI Data <?php echo $_GET['namadpn']; ?></title>

    </head>

    <body>

        <!--- ini form pemcarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button><input type="text" name="namadpn" required></div>

        </form>

        <?php

        require_once("connectdb.php");

        if(!isset($_GET['namadpn'])){

        $namadpn = '*';

        }else{

        $namadpn = $_GET['namadpn'];

        }

        $perhalaman = 100;

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu where namadpn=\"".$namadpn."\"";

        $result = $conn->query($sql);

        $jumlahResult = $result->num_rows;

        $nomer_halaman = ceil ($jumlahResult / $perhalaman);  

  

    //determine which page number visitor is currently on  

        try{

        if (!isset ($_GET['halaman']) ) {  

        $halaman = 1;  

        } elseif (is_numeric($_GET['halaman'])) {  

        $halaman = $_GET['halaman'];  

        }else{

        echo "<p><b>halaman tidak ditemukan</b></p>";

        }

  

        //determine the sql LIMIT starting number for the results on the displaying page  

        $halaman_pertama = ($halaman-1) * $perhalaman;

        $sql = "SELECT *FROM tamu where namadpn = \"".$namadpn."\" LIMIT " . $halaman_pertama . ',' . $perhalaman;

        $result = $conn->query($sql);

        if ($jumlahResult > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        }catch(Exception $e){

        print "System sedang sibuk harap kembali lagi nanti";

        }catch(Error $e){

        print "404 error";

        }

        $conn->close();

        

        for($halaman = 1; $halaman<= $nomer_halaman; $halaman++) {  

                echo '<a href = "search.php?namadpn='.$namadpn.'&halaman=' . $halaman . '">' . $halaman . ' </a>';  

        }

        ?>

<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->

<script>

    function konfirmasi(id){

    let  a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");

    if (a==true){

        window.location.href = "/remove.php?id="+id ;

    }

    }

</script>

    </body>

</html>

Bagaimana bila kita ingin mencari data dari namablkg. Kita bisa memodifikasinya form pencarian dengan menambahkan nama kolom yang ingin dicari seperti id, nama belakang atau email. Saya menggunakan tag select yang elemen optionya berupa kolom yang akan dicari yakni id, nama depan, nama belakang dan email.

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button>

            <select name="kolom">

                <option value="id">ID</option>

                <option value="namadpn">Nama Depan</option>

                <option value="namablkg">Nama Belakang</option>

                <option value="email">email</option>

            </select>

            <input type="text" name="namadpn" required></div>

        </form>

Tampilannya akan menjadi seperti ini

Pencarian data pada php

Maka script kode yang dibuat akan menjadi seperti ini

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>CARI Data <?php echo $_GET['namadpn']; ?></title>

    </head>

    <body>

        <!--- ini form pemcarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button>

            <select name="kolom">

                <option value="id">ID</option>

                <option value="namadpn">Nama Depan</option>

                <option value="namablkg">Nama Belakang</option>

                <option value="email">email</option>

            </select>

            <input type="text" name="namadpn" required></div>

        </form>

        <?php

        $kolom = $_GET['kolom'];

        require_once("connectdb.php");

        if(!isset($_GET['namadpn'])){

        $namadpn = '*';

        }else{

        $namadpn = $_GET['namadpn'];

        }

        $perhalaman = 100;

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu where ".$kolom."=\"".$namadpn."\"";

        $result = $conn->query($sql);

        $jumlahResult = $result->num_rows;

        $nomer_halaman = ceil ($jumlahResult / $perhalaman);  

  

    //determine which page number visitor is currently on  

        try{

        if (!isset ($_GET['halaman']) ) {  

        $halaman = 1;  

        } elseif (is_numeric($_GET['halaman'])) {  

        $halaman = $_GET['halaman'];  

        }else{

        echo "<p><b>halaman tidak ditemukan</b></p>";

        }

  

        //determine the sql LIMIT starting number for the results on the displaying page  

        $halaman_pertama = ($halaman-1) * $perhalaman;

        $sql = "SELECT *FROM tamu where ".$kolom." = \"".$namadpn."\" LIMIT " . $halaman_pertama . ',' . $perhalaman;

        $result = $conn->query($sql);

        if ($jumlahResult > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        }catch(Exception $e){

        print "System sedang sibuk harap kembali lagi nanti";

        }catch(Error $e){

        print "404 error";

        }

        $conn->close();

        

        for($halaman = 1; $halaman<= $nomer_halaman; $halaman++) {  

                echo '<a href = "search.php?namadpn='.$namadpn.'&halaman=' . $halaman . '">' . $halaman . ' </a>';  

        }

        ?>

<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->

<script>

    function konfirmasi(id){

    let  a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");

    if (a==true){

        window.location.href = "/remove.php?id="+id ;

    }

    }

</script>

    </body>

</html>

Bila kamu punya pesan error periksa kembali script kode yang kamu buat. Tetapi bila kamu ingin bertanya tentang eror yang terjadi kamu bisa berkomentar dikolam komentar atau kamu bisa menghubungi saya di halaman kontak website ini. Happy coding yah.

Tidak ada komentar:

Posting Komentar