Membuat fitur SEARCHING pada data-data yang di ambil dari 3 tabel terjoin

Saya ingin membuat fitur searching pada tabel yang sudah saya join (ada 3 tabel) tapi saya bingung hasilnya selalu menampilkan output seluruh datanya (tidak sesuai keyword yang saya ketikan pada kotak inputan searchingnya)

berikut control model dan viewnya:

CONTROLLER:

public function role()
    {
        $data['title'] = 'Role | bankeuverifikasi';
        $data['myprofile'] = 'Role Management';
        $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
        $this->load->model('Role_model', 'role');

        $data['getrole'] = $this->role->getRole();

        if ($this->input->post('keyword')) {
            $data['getrole'] = $this->role->cariDataUser();
            $keyword = $this->input->post('keyword', true);
            $this->db->like('name', $keyword);
            $this->db->get('user')->result_array();
        }

        $this->load->view('templates/header', $data);
        $this->load->view('templates/sidebar', $data);
        $this->load->view('templates/topbar', $data);
        $this->load->view('admin/role', $data);
        $this->load->view('templates/footer');
    }

pada controller saya membuat 2 model, pertama getRole() digunakan untuk menampilkan seluruh data hasil gabungan dari 3 tabel (untuk lebih jelas nanti lihat ke VIEW dan MODEL), kedua cariDataUser() digunakan untuk fungsional searching berdasarkan data yang dihasilkan si getRole().

untuk lebih jelas berikut MODEL nya:

MODEL getRole()

class Role_model extends CI_Model
{
    public function getRole($limit, $start)
    {
        $query = "SELECT `dispermades`.`kabupaten`, `dispermades`.`kecamatan`, `dispermades`.`desa`, `user`.`name`, `user`.`is_active`, `user`.`user_id`, `user`.`role_id`, `role`.`role_akses` FROM `user` LEFT JOIN `dispermades` ON `user`.`user_id` = `dispermades`.`permendagri_id` LEFT JOIN `role` ON `user`.`role_id` = `role`.`id`
        ";

        return $this->db->query($query, $limit, $start)->result_array();
    }

isinya query manual yang nantinya dipanggil lewat controller dikirim ke view...

MODEL cariDataUser()

public function cariDataUser()
    {
        $query = "SELECT `dispermades`.`kabupaten`, `dispermades`.`kecamatan`, `dispermades`.`desa`, `user`.`name`, `user`.`is_active`, `user`.`user_id`, `user`.`role_id`, `role`.`role_akses` FROM `user` LEFT JOIN `dispermades` ON `user`.`permendagri_id` = `dispermades`.`permendagri_id` LEFT JOIN `role` ON `user`.`role_id` = `role`.`id`
                ";

        $keyword = $this->input->post('keyword', true);
        $this->db->like('name', $keyword);
        $this->db->or_like('desa', $keyword);
        $this->db->or_like('kecamatan', $keyword);
        $this->db->or_like('kabupaten', $keyword);
        $this->db->or_like('role', $keyword);
        return $this->db->count_all_results($query)->result_array();
    }

isinya query manual juga yang nantinya dipanggil lewat controller dikirim ke view... kira2 yang bener gimana ya master2... help me....

VIEWnya:

        <!-- Begin Page Content -->
        <div class="container-fluid">

            <!-- Page Heading -->
            <h1 class="h3 mb-4 text-gray-800"><?= $myprofile; ?></h1>
            <div class="row mt-3 justify-content-center mb-4">
                <div class="col-md-6">
                    <form action="<?= base_url('admin/role'); ?>" method="post">
                        <div class="input-group mb-3">
                            <input type="text" class="form-control" name="keyword" autofocus>
                            <div class="input-group-append">
                                <button class="btn btn-primary" type="submit">Search</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
            <div class="row">
                <div class="col">
                    <?= $this->session->flashdata('message'); ?>
                    <table class="table table-hover">
                        <thead>
                            <tr>
                                <th scope="col">#</th>
                                <th scope="col">Petugas</th>
                                <th scope="col">Desa</th>
                                <th scope="col">Kecamatan</th>
                                <th scope="col">Kabupaten</th>
                                <th scope="col">Role</th>
                                <th scope="col">Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php $i = 1; ?>
                            <?php foreach ($getrole as $gr) : ?>
                                <tr>
                                    <th scope="row"><?= $i; ?></th>
                                    <td><?= $gr['name']; ?></td>
                                    <td><?= $gr['desa']; ?></td>
                                    <td><?= $gr['kecamatan']; ?></td>
                                    <td><?= $gr['kabupaten']; ?></td>
                                    <td><?= $gr['role_akses']; ?></td>
                                    <td>
                                        <a href="<?= base_url('admin/roleedit/') . $gr['user_id']; ?>" class="badge badge-info">Edit</a>
                                        <a href="<?= base_url('admin/roleaccess/') . $gr['role_id']; ?>" class="badge badge-warning">Permission</a>
                                        <a href="<?= base_url('admin/hapususer/') . $gr['user_id']; ?>" class="badge badge-danger" onclick="return confirm('yakin?');">Delete</a>
                                    </td>
                                </tr>
                                <?php $i++; ?>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>



Semoga kebaikan kalian terbalaskan dimanapun kalian berada

avatar tinzjintkoleunu_google
@tinzjintkoleunu_google

3 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban