Sunday, April 3, 2016

Pencarian data dengan PDO (PHP Data Objek)

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.

Membuat Halaman Admin Untuk Web Buatan Sendiri

Bismillahirahmanirahim, Assalamualaikum wr.wb
Apakabar mas bro dan mbak bro semua :D masih semangat ga nih puasanya? :D ini sambil puasa, daripada ga ada kerjaan, mending otak atik code yuk. Lama ga nulis tutorial disini, lagi sibuk menimba ilmu :v wkwkwk oke langsung aja ya, kali ini ane mau ngasih tau cara bikin admin panel untuk web buatan sendiri. ini dengan cara ane ya. Ane cuma ngasih tau cara bikin admin panelnya, maksudnya kaya buat edit judul, deskripsi, via admin panel. Bukan admin panel sepenuhnya. Tapi, dari kode dasar ini bisa kalian kembangin untuk fitur lainnya, yang penting kalian tau dasarnya dulu
Logika nya, jika ingin membuat admin panel yang bisa mengubah konten dari sebuah web, berarti harus ada koneksi antara database, tampilan, dan program inti. Untuk database kita menggunakan MySQL via phpmyadmin. Nah, pertama, kita bikin koneksi ke database dulu yuk. Sebelumnya, kalian bikin db nya dulu di php my admin, gausah pake table atau apa. polos aja dulu. terus sekarang bikin file namanya koneksi.php, fungsinya untuk mengkoneksikan ke db

koneksi.php

<?php
$host   = "localhost";
$user   = "username database";
$pass   = "password database";
$name   = "nama database";
 
mysql_connect("$host", "$user", "$pass");
mysql_select_db("$name");
?>

Bikin tabel
Setelah kalian selesai membuat file koneksi.php tadi, sekarang kita bikin tabel di databasenya. Saya pake phpmyadmin versi 3.5.1, setelah login, pilih database yang tadi ente buat + udah dimasukin ke koneksi.php. terus disebelah kiri klik tulisan "create table". table name tulis aja "jc_setting", terus bikin coloumn set_id, type nya INT, length nya 11, terus coloumn set_name, type varchar, length nya 32, terus set_content, length 255, type varchar, dan set_url, setingannya sama kaya set_content. 

Insert data ke kolom
Sekarang insert data dulu ke kolom di databasenya, pencet menu insert. lalu isikan data seperti ini. Klik untuk memperbesar gambar.
contoh

Bikin template webnya standar
Nah sekarang bikin web templatenya dulu. standar aja, kan buat contoh >_<. kasih nama index.php

<?php
include 'koneksi.php';
include 'head.php';
nah sekarang bikin file lagi dengan nama head.php

<html>
    <head>
        <title><?php
$sql = mysql_query("SELECT * FROM jc_setting WHERE set_id=1");
if(mysql_num_rows($sql) != 0){
    while($data = mysql_fetch_assoc($sql)){
        echo ''.$data['set_content'].'';
    }
}
?>
 
-
 
<?php
$sql = mysql_query("SELECT * FROM jc_setting WHERE set_id=2");
if(mysql_num_rows($sql) != 0){
    while($data = mysql_fetch_assoc($sql)){
        echo ''.$data['set_content'].'';
    }
}
?></title>
</head>
<body>
<h1>welcome to <?php
$sql = mysql_query("SELECT * FROM jc_setting WHERE set_id=1");
if(mysql_num_rows($sql) != 0){
    while($data = mysql_fetch_assoc($sql)){
        echo ''.$data['set_content'].'';
    }
}
?> </h1>
</body>
</html>
ini sengaja ane buat panjang biar ente ente pada ngerti itu data muncul dari mana. perhatiin tulisan WHERE set_id=1, bisa ente main mainin tuh, mau ORDER BY ASC atau DESC, atau apalah terserah ente. main experiment aja kaya pas pertama ane belajar ini. ane belajar ini sendiri :3

Bikin halaman admin buat ngatur konten websitenya
Nah bikin file baru lagi, namanya admin.php

<?php
session_start();
ob_start();
include'config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>admin site</title>
</head>
<body>
<h1>Site configuration</h1>
<!------------- Ganti Judul ---------------->
<?php
$sql = mysql_query("SELECT * FROM jc_setting WHERE set_id=1");
if(mysql_num_rows($sql) != 0){
    while($data = mysql_fetch_assoc($sql)){
        echo '<b>Site Name:</b> '.$data['set_content'].'';
    }
}
?> <a href="admin.php?aksi=edit&id=1">Edit</a><br>
<?php   
//edit judul
    if(@$_GET['aksi'] == "edit"){
        $id = abs((int)$_GET['id']);
        $get = mysql_query("SELECT * FROM jc_setting WHERE set_id='$id'");
        $dataGet = mysql_fetch_assoc($get);
         
        if(@$_POST['save-judul']){
            $Title  = $_POST['judul'];
             
            if($Title){
                $up = mysql_query("UPDATE jc_setting SET set_content='$Title' WHERE set_id='1'");
                if($up){
                    echo '<script language="javascript">alert("Data Successfully Saved!"); document.location="admin.php?aksi=edit&id=1";</script>';
                }else{
                    echo '<div class="error">ERROR: Fail to Save Data.</div>';
                }
            }else{
                echo '<div class="error">ERROR: Enter your new site name.</div>';
            }
        }
         
        echo '<form action="" method="post">';
        echo '<h3>Change Site Name</h3>';
        echo '<p>New Site Name:<br /><input type="text" name="judul" placeholder="Masukan Judul Web Anda Yang Baru" /></p>';
        echo '<input type="submit" name="save-judul" value="save" />';
        echo '</form>';
    }?>
     
<!------------- Ganti Deskripsi ---------------->
<hr style="margin-top:20px;"><?php
$sql = mysql_query("SELECT * FROM jc_setting WHERE set_id=2 ORDER BY set_content ASC");
if(mysql_num_rows($sql) != 0){
    while($data = mysql_fetch_assoc($sql)){
        echo '<b>Web Description:</b> '.$data['set_content'].'';
    }
}
?> <a href="admin.php?aksi=edit&id=2">Edit</a><br>
<?php   
//edit deskripsi
    if(@$_GET['aksi'] == "edit"){
        $id = abs((int)$_GET['id']);
        $get = mysql_query("SELECT * FROM jc_setting WHERE set_id='2'");
        $dataGet = mysql_fetch_assoc($get);
         
        if(@$_POST['save-desc']){
            $Description    = $_POST['deskripsi'];
             
            if($Description){
                $up = mysql_query("UPDATE jc_setting SET set_content='$Description' WHERE set_id='2'");
                if($up){
                    echo '<script language="javascript">alert("Data Has Been Saved."); document.location="admin.php?aksi=edit&id=2";</script>';
                }else{
                    echo '<div class="error">ERROR: Failed to Save Data.</div>';
                }
            }else{
                echo '<div class="error">ERROR: Enter Your Site Description.</div>';
            }
        }
         
        echo '<form action="" method="post">';
        echo '<h3>Change Web Description</h3>';
        echo '<p>Web Description:<br /><input type="text" name="deskripsi" placeholder="Masukan Deskripsi Web Anda Yang Baru" /></p>';
        echo '<input type="submit" name="save-desc" value="save" />';
        echo '</form>';
    }?>
        <div class="clear"></div>
 
</body>
</html>

Cara Mudah dan Cepat Membuat Laporan atau Surat PDF dari PHP, MySQL dan MPdf

Asalamualaikum,
Selamat menunaikan ibadah puasa bagi seluruh umat muslim, semuga kita kuat menjalaninya dengan ikhlas dan hanya mengharapkan pahala dari Allah Tuhan Yang Maha Esa..
Sekian kultum dari saya.. Ehhh.. :D

Oke, tutorial pertama saya ini tentang “Mudah dan Cepat Membuat Laporan atau Surat PDF dari PHP, MySQL dan MPdf”..
Langsung saja kita siapan alat dan bahannya..
  1. Laptop atau apalah..
  2. Text editor..
  3. XAMPP atau Virtual Server lain..
  4. MPDF,  karena saya saat ini sudah jatuh hati pada kemudahan dan kesederhanaannya setelah berkelana melewati gunung dan lembah dan beberapa cabe-cabean.. Kenapa MPDF? Kita akan bahas setelah tutorial ini. (Sori Tutornya agak @#, Maklum ABG.. hehe)
  5. Browser..
  6. Kemauan.
Untuk MPdf bisa di googling atau download disitus resminya (http://www.mpdf1.com/mpdf/index.php?page=Download) pilih versi FULL jangan yang UPDATE..
Setelah semua  Alat dan Bahan sudah terkumpul, hanya perlu waktu 5menit saja untuk membuat “Mudah dan Cepat Membuat Laporan atau Surat PDF dari PHP, MySQL dan MPdf” sekarang kita mulai.

Langkah 1
NIAT..(Penting)
Langkah 2
Nyalakan laptop, buka text editor kesayangan anda..
Buka XAMPP, jalankan Apache dan MySQL.
Seperti Ini..
Notepade++ and XAMPP


Langkah 3
Kita Buat databasenya.
Buka PhpMyAdmin, buka tab “SQL”..
Sebagai contoh Paste kan kode SQL ini..

CREATE TABLE IF NOT EXISTS `coba` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nama` text NOT NULL,
  `pesan` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
 
--
-- Dumping data for table `coba`
--
 
INSERT INTO `coba` (`id`, `nama`, `pesan`) VALUES
(1, 'Arinadi', 'Hy, Selamat Puasa'),
(2, 'Nur', 'Puasa = Jaga Mulut, Mata, Hati, Telinga.'),
(3, 'Rohmad', 'Kapan Buka Nih? haha');
Hasilnya..
PHPmyAdmin


Langkah 4
Kita buat folder xampp > htdoc > coba..
Lalu kita extrak MPDF yang tadi..
Extrak MPDF

Langkah 5
Kita Mulai Codeing..
Copy kode ini..

<?php
 // Define relative path from this script to mPDF
 $nama_dokumen='PDF With MPDF'; //Beri nama file PDF hasil.
define('_MPDF_PATH','MPDF57/');
include(_MPDF_PATH . "mpdf.php");
$mpdf=new mPDF('utf-8', 'A4'); // Create new mPDF Document
 
//Beginning Buffer to save PHP variables and HTML tags
ob_start();
?>
<!--sekarang Tinggal Codeing seperti biasanya. HTML, CSS, PHP tidak masalah.-->
<!--CONTOH Code START-->
<?php
 //KONEKSI
$host="localhost"; //isi dengan host anda. contoh "localhost"
$user="root"; //isi dengan username mysql anda. contoh "root"
$password=" "; //isi dengan password mysql anda. jika tidak ada, biarkan kosong.
$database="pdf";//isi nama database dengan tepat.
mysql_connect($host,$user,$password);
mysql_select_db($database);
?>
<table border=1>
<tr>
<td>id</td>
<td>nama</td>
<td>Pesan</td>
</tr>
<?php
$sql=mysql_query("SELECT * FROM coba");
while($data=mysql_fetch_assoc($sql)){
echo'<tr>
<td>'.$data[id].'</td>
<td>'.$data[nama].'</td>
<td>'.$data[pesan].'</td>
</tr>';
}
?>
</table>
<!--CONTOH Code END-->
 
<?php
$html = ob_get_contents(); //Proses untuk mengambil hasil dari OB..
ob_end_clean();
//Here convert the encode for UTF-8, if you prefer the ISO-8859-1 just change for $mpdf->WriteHTML($html);
$mpdf->WriteHTML(utf8_encode($html));
$mpdf->Output($nama_dokumen.".pdf" ,'I');
exit;
?>
Jangan lupa, Edit koneksi pada file php di atas
Save as file dengan nama pdf.php di folder coba.
Sperti ini..
Contoh PHP PDF


Finishing/Langkah Terakhir
Buka Browser, akses kode yang kita buat tadi dengan localhost/coba/pdf.php
Jika berhasil akan seperti ini..
Hasil PHP MPDF


SELESAI..
Sekarang Saya mau bahas kenapa saya pilih MPdf untuk membuat Laporan dan Surat PDF dari Web..
Ada banyak modul sejenis Mpdf seperti yang terkenal  FPDF..
Jujur saya pusing, saat melihat dokumentasi dari FPDF yang settinganya Rumit (Buat Saya)..
Saya iseng di Forum “PHP Indonesia” di Facebook, saya tanya  “apa modul untuk membuat pdf yang Simple?” yang jawab beragam seperti domPDF, Fpdf dan lain”..
Setelah itu saya coba download semua yang di rekomendasikan karena saya sedang membuat proyek dan harus jadi 3hari.
Hari pertama saya coba FPDF dengan membaca DOC nya, ternyata rumit.
Masih di hari yang sama Saya coba domPdf dari github malah tambah puyeng… masalahnya cara instalnya(emang mungkin saya yang telmi.. hehe)
Merasa Gelisah tak menentu, dihari yang sama pas sore hari saya coba MPDF dengan membaca DOC nya.. saya fikir sama dengan FPDF karena syntax kodenya mirip sekali dengan FPDF,
Satu persatu saya buka dan baca DOC MPDF secara online, nah pada ahkirnya saya ketemu sample code yang sangat mudah dimengerti..
Paginya saya terapkan algoritma saya untuk project tadi, dan hasilnya TRUE.. HOREEEE
Problem selesai dalam 2 hari dan tinggal tunggu transfer ..hehe..

SEKIAN TUTORIAL “Mudah dan Cepat Membuat Laporan atau Surat PDF dari PHP, MySQL dan MPdf
Semuga Bermanfaat..
WalaikumSalam..