Membuat Website Professional dengan PHP MySql - PART #13 : Halaman Kategori & Search

Membuat Website Professional dengan PHP MySql - PART #13 : Halaman Kategori & Search

Table of contents



Selamat Sore, semoga anda sehat selalu. Oke, pada hari ini saya akan melanjutkan seri Membuat Website Profesional dengan PHP & Mysql yang sudah sampai Part 13 yang akan membahas membuat halaman kategori dan search. Bagi yang baru mengikuti post ini, silahkan anda lihat terlebih dahulu beberapa posting sebelumnya:

#1 Membuat Halaman Kategori

  • Hidupkan XAMPP terlebih dahulu
  • Buat file php baru dan beri nama kategori.php (tanpa .php) dan simpan di dalam folder hospital
  • Copy kode berikut dan simpan 
    <?php include "header.php"; ?>
    <!-- bradcam_area_start  -->
        <div class="bradcam_area breadcam_bg bradcam_overlay">
            <div class="container">
                <div class="row">
                    <div class="col-xl-12">
                        <div class="bradcam_text">
                        <?php $sql = mysqli_query($koneksi, 'SELECT * FROM kategori where id="'.$_GET['id'].'"');?>
    					<?php $row = mysqli_fetch_array($sql);?>
                            <h3><?php echo $row['judul']?></h3>
                            <p><a href="<?php echo $base_url;?>">Home /</a> Kategori / <?php echo $row['judul']?></p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- bradcam_area_end  -->
        
         <!--================Blog Area =================-->
        <section class="blog_area section-padding">
            <div class="container">
                <div class="row">
                    <div class="col-lg-8 mb-5 mb-lg-0">
                        <div class="blog_left_sidebar">
                        <?php $halaman = 2;
    					  $page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
    					  $mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
    					  $result = mysqli_query($koneksi,"SELECT * FROM post WHERE id_kategori='".$_GET['id']."'");
    					  $total = mysqli_num_rows($result);
    					  $pages = ceil($total/$halaman);            
    					  $query = mysqli_query($koneksi,"select * from post WHERE id_kategori='".$_GET['id']."' LIMIT $mulai, $halaman");
    					  $no =$mulai+1;
    					  while ($row = mysqli_fetch_assoc($query)) { ?>
                            <article class="blog_item">
                                <div class="blog_item_img">
                                    <img class="card-img rounded-0" src="<?php echo $base_url; ?>admin/<?php echo $row['gambar_utama']?>" alt="">
                                    <a href="#" class="blog_item_date">
                                    	<?php $tanggal = $row['publish_date'];?>
                                        <?php $pecah = explode("/", $tanggal); ?>
                                        <h3><?php echo $pecah[0] ?></h3>
                                        <p><?php echo $pecah[1] ?></p>
                                    </a>
                                </div>
    							<?php $slug = preg_replace('~[^\pL\d]+~u', '-', $row['judul']);?> 
                                <div class="blog_details">
                                    <a class="d-inline-block" href="<?php echo $base_url;?>post/<?php echo $row['id']?>/<?php echo strtolower($slug);?>">
                                        <h2><?php echo $row['judul']?></h2>
                                    </a>
                                   <?php echo substr($row['content'], 0, 200) .((strlen($row['content']) > 200) ? '...' : '');?>
                                   <?php $sqlkat = mysqli_query($koneksi, "SELECT * FROM kategori WHERE id='".$row['id_kategori']."'");?>
                                   <ul class="blog-info-link">
                                    <?php $rowkat = mysqli_fetch_array($sqlkat);?>
                                        <li><a href="#"><i class="fa fa-user"></i> <?php echo $rowkat['judul']?></a></li>
                                       
                                    </ul>
                                </div>
                            </article>
    
                          <?php } ?>
    
                            <nav class="blog-pagination justify-content-center d-flex">
                            <ul class="pagination">
                            <?php for ($i=1; $i<=$pages ; $i++){ ?>
                              <li class="page-item"><a href="" class="page-link"><?php echo $i; ?></a></li>
                             
                              <?php } ?>
                             </ul>                   
                            </nav>
                        </div>
                    </div>
                    
                    <?php include ('blog-sidebar.php');?>
            </div>
        </section>
        <!--================Blog Area =================-->
        <?php include "footer.php";?>​
  • Lihat baris kode dibawah, anda memanfaatkan method $_GET['id'] untuk mendapatkan id dari kategori yang penggunaannya sudah saya jelaskan di Part 12 Bagian membuat sidebar. Contoh: http://localhost/hospital/kategori/1 dimana 1 adalah id kategori
    <?php $sql = mysqli_query($koneksi, 'SELECT * FROM kategori where id="'.$_GET['id'].'"');?>
  • Jadi, anda melakukan query ke tabel kategori berdasarkan id yang dimaksud. 
  • Baris kode berikutnya hampir sama saat anda membuat Halaman blog di part 12, perbedaannya hanya pada query ke tabel kategori dengan kondisi diatas.

#2 Membuat Halaman Search



  • Buat file php baru dan beri nama search.php (tanpa .php) dan simpan di dalam folder hospital
  • Copy kode berikut dan simpan 
    <?php include "header.php"; ?>
    
    <!-- bradcam_area_start  -->
        <div class="bradcam_area breadcam_bg bradcam_overlay">
            <div class="container">
                <div class="row">
                    <div class="col-xl-12">
                        <div class="bradcam_text">
                            <h3>Search</h3>
                            <p><a href="<?php echo $base_url;?>">Home /</a> Search</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- bradcam_area_end  -->
        
         <!--================Blog Area =================-->
        <section class="blog_area section-padding">
            <div class="container">
                <div class="row">
                    <div class="col-lg-8 mb-5 mb-lg-0">
                        <div class="blog_left_sidebar">
                        <?php 
                            if(isset($_GET['cari'])){
                                $cari = $_GET['cari'];
                                echo "<b>Hasil pencarian : ".$cari."</b><br/><br/>";
                            }
                            ?>
                            
                        <?php $halaman = 5;
    						  $page = isset($_GET["halaman"]) ? (int)$_GET["halaman"] : 1;
    						  $mulai = ($page>1) ? ($page * $halaman) - $halaman : 0;
    						  $result = mysqli_query($koneksi,"SELECT * FROM post WHERE content like '%".$cari."%' OR judul like '%".$cari."%' AND status='1'");
    						  $total = mysqli_num_rows($result);
    						  $pages = ceil($total/$halaman);            
    						  $query = mysqli_query($koneksi,"select * from post WHERE content like '%".$cari."%' OR judul like '%".$cari."%' AND status='1' LIMIT $mulai, $halaman");
    						  $no =$mulai+1;
     
     						  while ($row = mysqli_fetch_assoc($query)) { ?>
    						 
                            <article class="blog_item">
                                <div class="blog_item_img">
                                    <img class="card-img rounded-0" src="<?php echo $base_url; ?>admin/<?php echo $row['gambar_utama']?>" alt="">
                                    <a href="#" class="blog_item_date">
                                    	<?php $tanggal = $row['publish_date'];?>
                                        <?php $pecah = explode("/", $tanggal); ?>
                                        <h3><?php echo $pecah[0] ?></h3>
                                        <p><?php echo $pecah[1] ?></p>
                                    </a>
                                </div>
    							<?php $slug = preg_replace('~[^\pL\d]+~u', '-', $row['judul']);?> 
                                <div class="blog_details">
                                    <a class="d-inline-block" href="<?php echo $base_url;?>post/<?php echo $row['id']?>/<?php echo strtolower($slug);?>">
                                        <h2><?php echo $row['judul']?></h2>
                                    </a>
                                   <?php echo substr($row['content'], 0, 200) .((strlen($row['content']) > 200) ? '...' : '');?>
                                   <?php $sqlkat = mysqli_query($koneksi, "SELECT * FROM kategori WHERE id='".$row['id_kategori']."'");?>
                                   <ul class="blog-info-link">
                                    <?php $rowkat = mysqli_fetch_array($sqlkat);?>
                                        <li><a href="#"><i class="fa fa-user"></i> <?php echo $rowkat['judul']?></a></li>
                                       
                                    </ul>
                                </div>
                            </article>
    
                          <?php } ?>
    
                            <nav class="blog-pagination justify-content-center d-flex">
                            <ul class="pagination">
                            <?php for ($i=1; $i<=$pages ; $i++){ ?>
                          	<li class="page-item"><a href="" class="page-link"><?php echo $i; ?></a></li>
                         
                          	<?php } ?>
                          	</ul>
                            </nav>
                        </div>
                    </div>
                    
                    <?php include ('blog-sidebar.php');?>
            </div>
        </section>
        <!--================Blog Area =================-->
        <?php include "footer.php";?>​
  • Di Part 12, sudah jelaskan sedikit di bagian membuat sidebar untuk mengarahkan form search ke halaman search menggunakan metode GET. 
    <form action="<?php echo $base_url; ?>search" method="get">
  • Jadi, halaman search akan digunakan untuk "menangkap" apapun kata kunci yang anda ketik di form search/input text yang diberi nama "cari"  
  • Baris kode berikut adalah query kedalam tabel post, dimana $cari = $_GET['cari'] 
    $query = mysqli_query($koneksi,"select * from post WHERE content like '%".$cari."%' OR judul like '%".$cari."%' AND status='1' LIMIT $mulai, $halaman");

Oke, cukup sekian posting tentang Membuat Website Professional dengan PHP MySql - PART #13 : Halaman Kategori & Search, selanjutnya anda akan mulai meng-upload file website yang anda buat di "localhost" ke web hosting dengan domain utama atau sub domain.



Artikel Terkait