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:
- Membuat Website Professional dengan PHP & MySql - PART #1 : Pengertian Dasar & Tools
- Membuat Website Professional dengan PHP & MySql - PART #2 : Setup Database, Table & Hirarki Folder
- Membuat Website Professional dengan PHP & MySql - PART #3 : Membuat Login Admin & Dashboard
- Membuat Website Professional dengan PHP & MySql - PART #4 : Customized Login Admin & Dashboard
- Membuat Website Professional dengan PHP & MySql - PART #5 : Membuat Halaman Profile Admin & Integrasi Gravatar
- Membuat Website Professional dengan PHP & MySql - PART #6 : Manajemen Halaman
- Membuat Website Professional dengan PHP & MySql - PART #7 : Manajemen Kategori
- Membuat Website Professional dengan PHP & MySql - PART #8 : Manajemen Post
- Membuat Website Professional dengan PHP & MySql - PART #9 : Manajemen Password Admin
- Membuat Website Professional dengan PHP & MySql - PART #10 : Pengaturan Global, Htaccess & Halaman Frontend
- Membuat Website Professional dengan PHP & MySql - PART #11 : Halaman About & 404
- Membuat Website Professional dengan PHP & MySql - PART #12 : Halaman Blog & Single Post
#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.