Assalamualaikum wr. wb.
Tutorial kali ini merupakan kelanjutan dari BAB PDO (PHP Data Objek) yang sempat terlupakan, untuk lebih jelasnya tentang PDO silahkan lihat pada tutorial saya disni.
Pada tahap ini kita akan melakukan pencarian data kedalam database dengan menggunakan PDO (PHP Data Objek)
Ok langsung saja. buat database "coba" kemudian import table berikut.
-- phpMyAdmin SQL Dump -- version 4.3.9 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1:4001 -- Generation Time: Jul 11, 2015 at 02:49 AM -- Server version: 5.5.42 -- PHP Version: 5.4.37 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Database: `coba` -- -- -------------------------------------------------------- -- -- Table structure for table `buku` -- CREATE TABLE `buku` ( `id_buku` int(3) NOT NULL, `nama_buku` varchar(12) NOT NULL, `harga_buku` varchar(10) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; -- -- Dumping data for table `buku` -- INSERT INTO `buku` (`id_buku`, `nama_buku`, `harga_buku`) VALUES (1, 'buku mu', '1000'), (2, 'buku ku', '2000'), (3, 'buku kita', '3000'), (4, 'buku anu', '2500'), (7, 'php buku', '100'); -- -- Indexes for dumped tables -- -- -- Indexes for table `buku` -- ALTER TABLE `buku` ADD PRIMARY KEY (`id_buku`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `buku` -- ALTER TABLE `buku` MODIFY `id_buku` int(3) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Database sudah siap, lanjut buat form pencarian.
<h2> Pencarian data dengan PDO (PHP Data Objek)</h2> <form method="post" action=""> <input typr="text" name="kata" style="width:200px;"><br> <input type="submit" name="cari" value="Cari"> </form>
hasil
kemudian berikut code php-nya.
<?php $kon=new PDO("mysql:host=localhost;dbname=coba","root",""); if(isset($_POST['cari'])){ $pencarian="%".$_POST['kata']."%"; try{ $cari=$kon->prepare("select nama_buku from buku where nama_buku like :nama"); $cari->BindParam(":nama",$pencarian); $cari->execute(); if($cari->rowCount()<1){ echo "<i> Tidak ada hasil untuk pencarian kata <b>\"".$_POST['kata']."\"</i></b>"; }else{ echo "<i> Hasil pencarian dengan kata <b>\"".$_POST['kata']."\"</b></i><br>"; while($t=$cari->fetch()){ echo $t['nama_buku']."<br>"; } } }catch(PDOException $e){ echo $e->getMessage(); } }
Penjelasan :
$kon=new PDO("mysql:host=localhost;dbname=coba","root","");
adalah koneksi database dengan menggunakan PDO yang disimpan ke variabel $kon (penjelasan lebih lengkap tentang PDO disni.)
if(isset($_POST['cari']))
apabila tombol "Cari" diklik.
$pencarian="%".$_POST['kata']."%";
mengambil keyword pencarian kemudian menyimpannya kedalam variabel pencarian.
tanda "%" didepan dan dibelakang adalah query SQL untuk mencari record yang mengandung kata pencarian, baik diawal, ditengah maupun diakhir kata.
$cari=$kon->prepare("select nama_buku from buku where nama_buku like :nama"); $cari->BindParam(":nama",$pencarian); $cari->execute(); if($cari->rowCount()<1){ echo "<i> Tidak ada hasil untuk pencarian kata <b>\"".$_POST['kata']."\"</i></b>"; }
melakukan pencarian kedalam database.
apabila rowcount kurang dari 1, artinya TIDAK ada baris yang terpengrauh oleh query SQL. (tidak ada data yag ditemukan) maka cetak "Tidak ada hasil"
else{ echo "<i> Hasil pencarian dengan kata <b>\"".$_POST['kata']."\"</b></i><br>"; while($t=$cari->fetch()){ echo $t['nama_buku']."<br>"; } }
apabila rowcount lebih dari 1 , artinya ada baris yang terpengaruh oleh query SQL (atau ada data yg ditemukan) maka cetak datanya dengak looping)
hasilnya sebagai berikut:
ok cukup sekian, semoga bermanfaat. terima kasih.
Wassalamualaikum wr. wb.