Ecommerce Dengan PHP MySQL
Ecommerce Dengan PHP MySQL
id
eCommerce
dengan PHP MySQL
Candra Adi Putra (candraadiputra@gmail.com)
12
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
2
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Table of Contents
BAB I INSTALASI DAN DASAR PHP ................................................................................................................ 5
Appserver .................................................................................................................................................. 5
Notepad++ ............................................................................................................................................ 5
Aptana IDE............................................................................................................................................. 6
Login ........................................................................................................................................................ 11
Form Validasi............................................................................................................................................... 13
Insert Data............................................................................................................................................... 17
3
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
4
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Appserver
Appserver adalah bundle software yang terdiri dari beberapa
komponen, diantaranya adalah MySQL, PHP, Apache dan PHPMyAdmin.
Dengan menggunakan Appserv kita tidak perlu menginstall program satu
persatu. Dari semua program diatas, program yang paling Nampak
adalah PHPMyAdmin. Aplikasi ini adalah tool berbasis web untuk mengolah data MySQL. Anda bisa
mendapatkannya di http://www.appservnetwork.com/
Notepad++
5
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Aptana IDE
Aptana IDE adalah IDE untuk membuat program berbasis Web. anda boleh saja memakai
DreamWeaver , namun saya sendiri memilih Aptana IDE mengingat IDE ini besifat open source,
mampu bejalan di banyak Platform (Windows, Linux, Mac) dan GRATIS. Namun hal yang paling
penting dengan adanya ide adalah adanya project manajement.
Kelebihan utama dari Aptana di banding dreamweaver atau editor notepad++ adalah
kemampuannya untuk memformat code sekaligus mengecek kesalahan syntax langsung di editor.
Google Chrome
Google chrome di pakai untuk mentesting website. Boleh saja menggunakan browser lain, justru
yang disarankan, kita mencoba di setiap browser untuk memastikan tampilan dan aplikasi yang kita
buat berjalan dengan benar. Namun Google Chrome mempunyai kelebihan karena sederhana dan
adanya fitur Developer tool yang canggih( penjelasan lebih lanjut di praktik).
MySQL Workbench
6
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
membuat SQL scripnya. MySQL workbench juga bisa membuat diagram relasi table langsung dari
MySQL script (reverse engine) .
7
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<?php
/* kode untuk meload halaman yang berbeda*/
if(isset($_GET['pg'])){
$page=$_GET['pg'].".php";
include($page);
}else{
include('home.php');
}
?>
Untuk membuat link ke home dan cara pesan, minimal seperti ini di code 1.2 kemudian buatlah file
home.php dn cara pesan.php dalam format html biasa
8
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<!—home.php
<h1>Selamat datang di toko buku murah</h1>
<P>
disini anda bisa membeli dan memesan buku dengan mudah, anda
tinggal klik, maka buku sampai di tempat anda.
tidak perlu lagi jauh jauh ke toko buku
</p>
<h1>Alamat kami</h1>
<p>
Jalan Lurus no 5 Yogyakarta
<br> Telp (0274) 123456
<br> Email:bukumurah@gmail.com
</p>
9
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Perancangan Database
Sebelum lebih jauh membahas code, berikut ini adalah diagram database untuk system ecommerce
yang akan kita buat.
10
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Login
Untuk membuat halaman login, 3 hal utama yang perlu di lakukan adalah sbb:
Tabel pengelola
Form Login
Code 2.1 form login
11
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<?php
session_start();
session_register('username');
//file konfigurasi
include ('inc/config.php');
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password);
header('location:index.php');
$valid = true;
$_SESSION['username'] = $username;
}
if ($valid == false) {
header("Location:form_login.php?status=1");
}
?>
12
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<?php
$host = "localhost";
// Host name
$username = "root";
// Mysql username
$password = "root";
// Mysql password
$db_name = "bookdb";
// Database name
Form Validasi
13
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Validation Usage
required or
Harus di isi
req
maxlen=??? or
Validasi input dengan maxmal karakter tertentu
maxlength=???
minlen=??? or
Validasi input dengan minimal karakter tertentu
minlength=???
alphanumeric or
Input harus alphanumeric (huruf dan angka tanpa spasi)
alnum
alphanumeric_space
Input harus alphanumeric (huruf dan angka plus spasi)
alnum_s
num
Input harus angka
numeric
Input harus huruf atau symbol
alpha
alphabetic
alpha_s
alphabetic_space Input harus huruf dan atau spasi
Untuk menggunakan teknik validasi ini, pertama tambahkan code dibawah ini
<script src="js/validjs.js"></script>
14
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</div>
15
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
16
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Crud adalah proses pengelohan data standar yang terdiri dari 4 operasi dasar yaitu create, retrieve,
update dan delete. Dalam bab ini, kita hanya akan membahas table pengelola . Untuk setiap table, kita
membutuhkan 5 file, file file itu adalah
1. Pengelola_view
2. Pengelola_form_add
3. Pengelola_add
4. Pengelola_form_edit
5. Pengelola_edit
Insert Data
Code 3.1 pengelola_Form_add
<td>
<input type="submit" name="tambahPengelola"
value="Tambah" />
17
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</script>
<?php
include ('inc/config.php');
//data dari user
if (isset($_POST['tambahPengelola'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password);
$sql = "INSERT INTO pengelola(username,password)
VALUES('$username', '$password')";
$result = mysql_query($sql) or die(mysql_error());
18
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
if ($result) {
header('location:index.php?page=pengelola_view&status=0');
} else {
header('location:index.php?page=pengelola_view&status=1');
}
mysql_close();
}
?>
Tampil Data
Code 3.3 pengelola_view
<?php
include ('inc/config.php');
?>
<h1> Tabel pengelola</h1>
<table width="600px" border=0>
<tr style="background-color:#F79307">
<td width="200px">Username</td><td>Password</td><td
width="100px">Operasi</td>
</tr>
<?php
/*
19
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
$sql="";
if(isset($_POST['btnCari'])){
$cari=$_POST['cari'];
//ambil data dari table admin
$sql="SELECT * FROM pengelola where username like '%$cari%'";
}else{
$sql="SELECT * FROM pengelola";
}
$result=mysql_query($sql) or die(mysql_error());
20
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
//tutup koneksi
?>
<tr>
<td align=right colspan='2'><?php
if (isset($_GET['status'])) {
if ($_GET['status'] == 0) {
echo " <div style='color:blue'>Operasi data
berhasil</div>";
} else {
echo "operasi gagal";
}
}
?></td>
<td align=right><a
href="index.php?page=pengelola_form_add"> <img src="image/add.jpg">
Add</a></td>
</tr>
<tr></tr>
</table>
<?
mysql_close();
//close database
21
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Update Data
Code 3.4 pengelola_form_edit
<?php
include ('inc/config.php');
$id = $_GET['id'];
//ambil data dari table feedback
$sql = "select * from pengelola where username='$id' ";
$result = mysql_query($sql) or die(mysql_error());
?>
<h2>Change password</h2>
<table>
<form id="form1" name="form1" method="post"
action="pengelola_edit.php">
<?
//proses menampilkan data
while($rows=mysql_fetch_array($result)){
?>
<td width="120">username</td>
<td width="350"><? echo $rows['username'];?></td>
<input type="hidden" id="username" name="username" value=<?
echo $rows['username'];?> />
22
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<td>
<input type="submit" name="submitUser" value="Submit"
/>
<input type="reset" name="resetbtn" value="Reset" />
</td>
</tr>
<?
//loop while
}
?>
</form>
</table>
23
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<?php
include ('inc/config.php');
//data dari user
if (isset($_POST['submitUser'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password);
$sql = " update pengelola set password='$password' where
username='$username'";
//echo $sql;
$result = mysql_query($sql) or die(mysql_error());
Delete Data
Code 3.6
if(isset($_GET['del'])){
$username=$_GET['id'];
$hapus ="delete from pengelola where username='$username'";
mysql_query($hapus);
}
24
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Kategori produk dalam hal ini adalah kategori buku degenerate secara dinamis menggunakan kode
sebagai berikut
?><li><a
href="index.php?page=detail&id=<?=$get_data['kd_kategori']?>">
<? echo $get_data['nama_kategori']?>
<!--(<?=$get_data['jumlah']?>)-->
25
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</a></li>
<?
}
?>
</ul>
while($get_data=mysql_fetch_array($hasil)){
?>
26
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
27
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<div style=clear:both></div>
; <?
}
?>
28
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<?
// Include MySQL class
require_once ('inc/mysql.class.php');
// Include database connection
require_once ('inc/global.inc.php');
// Include functions
require_once ('inc/functions.inc.php');
// Start the session
session_start();
// Process actions
$cart = $_SESSION['cart'];
$action = $_GET['action'];
switch ($action) {
case 'add' :
if ($cart) {
$cart .= ',' . $_GET['id'];
} else {
$cart = $_GET['id'];
}
break;
case 'delete' :
if ($cart) {
$items = explode(',', $cart);
$newcart = '';
foreach ($items as $item) {
if ($_GET['id'] != $item) {
if ($newcart != '') {
29
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
30
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
}
}
}
$cart = $newcart;
break;
}
$_SESSION['cart'] = $cart;
?>
<div id="shoppingcart">
<h1>Keranjang belanja anda</h1>
<?php
echo writeShoppingCart();
?>
</div>
<div id="contents">
<h3>Cek keranjang belanja</h3>
<?php
echo showCart();
?>
31
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<table>
<!--<tr>
<td width="120">kd_pemesan</td>
32
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</tr>
<tr>
<td width="120">Email</td>
<td width="350">
<input name="Email" type="Email" id="Email"
size="40" />
</td>
</tr>
<?php?>
<tr>
<td width="120">Kota</td>
<td width="350">
<select name='id_kota' id='id_kota'>
<?
$get_kota=mysql_query('select * from biaya_kirim order by nama_kota');
while ($rows=mysql_fetch_array($get_kota)){
?>
<option
value="<?=$rows['id_kota']?>"><?=$rows['nama_kota']
?></option>
<?
}//end while
?>
</select></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="tambah" value="Tambah"
/>
<input type="reset" name="resetbtn" value="Reset"
/>
</td>
33
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</tr>
<tr>
<td colspan='2'><div id="form1_errorloc"
style="color:red"></div></td>
</tr>
</table></td>
</form>
<script language="javaScript" type="text/javascript"
xml:space="preserve">
//You should create the validator only after the definition
of the HTML form
var frmvalidator = new Validator("form1");
frmvalidator.EnableOnPageErrorDisplaySingleBox();
frmvalidator.EnableMsgsTogether();
34
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
angka ");
frmvalidator.addValidation("email", "maxlen=50", "maksimal
panjang email 50 karakter");
</script>
<?
}
?>
</div>
35
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Tampilan chart
36
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
<html>
<head>
<link rel="stylesheet" type="text/css" media="screen"
href="style2.css" />
</head>
<body>
<h2 align="center"> Laporan Daftar Buku </h2>
<h1 align="center"> Toko Buku murah </h1>
<p align="center">
jl Lurus no 5 Yogyakarta
</p>
<hr>
<br/>
<?php?>
<table align='center'>
<tr style="background-color:#F79307">
<td>No</td><td>Kd
buku</td><td>Judul</td><td>Pengarang</td>
<td>Harga</td>
</tr>
<?php
include ('inc/config.php');
$sql="SELECT * FROM buku";
$result=mysql_query($sql) or die(mysql_error());
//proses menampilkan data
$no=1;
while($rows=mysql_fetch_array($result)){
?>
<tr> <td><?=$no;?></td>
<td><? echo $rows['kd_buku'];?></td>
<td><? echo $rows['judul'];?></td>
<td><? echo $rows['pengarang'];?></td>
<td><? echo $rows['harga'];?></td>
37
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
</tr>
<?
$no++;
}
?>
</table>
<?mysql_close();
?>
</body>
</html>
38
Membangun eCommerce Berbasis PHP MySQL (http://www.candra.web.id)
Program eCommerce diatas masih perlu di kembangkan. Beberapa ide untukmengembangkan adalah
sbb:
39