Pada tahap ini saya akan coba menjelaskan bagaimana sistem dari sisi admin toko online ini. Pertama buatlah file-file yang akan dibutuhkan seperti terlihat dibawah ini

screenshot

  • Folder CSS yang berguna menyimpan segala file CSS
  • JS berguna untuk menyimpan file Javascript dan library plugin-plugin .js dan jquery yang akan dibutuhkan nanti
  • Folder Media yang yang merupakan tempat menyimpan plugin datatables yang telah dibahas di postingan sebelumnya di cara menambahkan plugin datatables
  • Folder Modul yang berguna untuk memisahkan bagian-bagian form yang nanti akan dibutuhkan dalam halaman adminnya
  • Folder NICEDIT yang berguna untuk menyimpan plugin text editor, dan nanti akan dapat memudahkan kita dalam menuliskan penginputan produk. Ya disini saya menggunakan plugin NICEDIT karena plugin ini sangat ringan  dan cukup powerful

Baiklah langsung saja pada pembahasan file Admin.php, silahkan buat file admin.php yang isinya

<!--?php <br ?-->include "../include/lib.php";
error_reporting(0);
session_start();
if (empty($_SESSION[namauser]) AND empty($_SESSION[passuser])){
echo "</pre>
<center>Silahkan Login terlebih dahulu
";
 echo "<a href="index.php"><strong>LOGIN</strong></a></center>
<pre>";
}
else{
?>

:: Toko Online ::
<script type="text/javascript" src="nicedit/nicEdit.js"></script><script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="media/js/jquery.dataTables.js"></script><script charset="utf-8" type="text/javascript">// <![CDATA[
            $(document).ready(function(){
                $('#datatables').dataTable({
                    "sPaginationType":"full_numbers",
                    "aaSorting":[[2, "desc"]],
                    "bJQueryUI":false
                });
                $('#pengelola').dataTable({
                    "sPaginationType":"full_numbers",
                    "aaSorting":[[2, "desc"]],
                    "bJQueryUI":false
                });
            })

// ]]></script>
<script type="text/javascript">// <![CDATA[
	bkLib.onDomLoaded(function(){
		nicEditors.allTextAreas(({buttonList : ['fontSize','bold','italic','underline','strikeThrough','subscript','superscript','html','image']})) });
// ]]></script>

</pre>
<div class="wrap">
<div class="header">
<div class="LeftOne"><a href="index.php">
 </a></div>
<div class="RightOne">
<div class="cart"><span class="KetCart">Administrator</span></div>
</div>
</div>
 <br class="clearfloat" />
<div class="BigCOntent">
<div class="LeftContent">
<div id="navigation">
<ul class="top-level">
	<li><a href="?mod=home">Home</a></li>
	<li><a href="?mod=product">Produk</a></li>
	<li><a href="?mod=category">Kategori</a></li>
	<li><a href="?mod=report">Report</a></li>
	<li><a href="logout.php">Logout</a></li>
</ul>
</div>
</div>
<div class="RightContent"><!--?php <br ?--> if ($_GET[mod]=='home'){
 echo "
<h1 class="Judul">Selamat Datang</h1>
 Anda Telah masuk ke halaman administrator silahkan gunakan menu yang tersedia :) 

";
 }
 //Add Kategori
 elseif ($_GET[mod]=='category'){
 require_once "modul/mod_kategori.php";
 }
 //Add Product
 elseif ($_GET[mod]=='product'){
 require_once "modul/mod_produk.php";
 }
 //Report
 elseif ($_GET[mod]=='report'){
 require_once "modul/report.php";
 }
 ?></div>
</div>
 <br class="clearfloat" />
<div class="footer">
© <!--?php echo date('Y') ?--> Membuat Sistem Shopping Cart | PHP dan MySQL Developed by <a href="http://www.hitamcoklat.com/">hitamcoklat</a></div>
</div>
<pre>

<!--?php } ?-->

Halaman admin ini merupakan bagian dimana semua proses yang dibutuhkan dalam penginputan dan beberapa proses lainnya dilakukan. Pada halaman admin ini saya membuat beberapa file yang semuanya saling mendukung

Admin.php

Pada bagian baris ke 5 sampai ke 9 merupakan validasi terhadap login yang telah dilakukan sebelumnya di bagian file index.php

  • Pada baris ke 17 merupakan sintaks untuk me load plugin text editor nicedit
  • Pada baris ke 18 merupakan sintaks untuk me load framework jquery
  • Pada baris ke 19 sampai ke 44 merupakan sintaks untuk me load plugin datatables beserta konfigurasi datatables
  • Pada baris 45 sampai ke 48 merupakan sintaks konfigurasi dari plugin text editor nicedit dan selanjutnya merupakan sintaks html yang mungkin sudah normal
  • Pada baris 78 sampai ke 94 merupakan sintaks php yang berfungsi sebagai proses pengujian, jika kondisi mod sama dengan home maka akan di isi dengan statement admin yang berupa string dan begitu juga pada pengujian selanjutnya pada category, product dan report yang akan mengacu pada pembukaan file dengan menggunakan require_once.

Mengenai nicedit

nicedit merupakan plugin text editor yang ditulis dalam bahasa javascript yang dapat memudahkan kita dalam mengelola tulisan kita yang memanfaatkan tag textarea pada HTML, untuk info lebih lanjut silahkan klik link dibawah ini

http://www.nicedit.com

index.php

<div id="header">
<div id="content"><center>
<form action="login.php" method="POST">
<table>
<tbody>
<tr>
<td>Username</td>
<td>: <input type="text" name="username" /></td>
</tr>
<tr>
<td>Password</td>
<td>: <input type="password" name="password" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login" /></td>
</tr>
</tbody>
</table>
</form></center></div>
</div>

Pada bagian file index.php berisi sintaks HTML untuk menampilkan form login yang merujuk pada file login.php

Login.php

File login.php ini berisi sintaks php yang berfungsi untuk memeriksa username dan password dari file rujukan index.php. Dapat dilihat bahwa username dan password tersebut di simpan pada session yaitu pada baris ke 16 dan 17 setelah itu melakukan direct ke halaman admin.php yang memiliki parameter home pada baris ke 18 dan jika username dan password tidak cocok maka akan menampilkan window alert serta me direct ke halaman index.php.

Logout.php

Pada bagian file ini berisi sintaks php yang berfungsi untuk menghapus semua session yang telah di lakukan dalam proses login ke halaman admin.php

aksi.php

session_start();
error_reporting(0);
include "../include/lib.php";
 
$mod=$_GET[mod];
$act=$_GET[act];
 
// Menghapus data
if (isset($mod) AND $act=='hapus'){
  mysql_query("DELETE FROM ".$mod." WHERE id ='$_GET[id]'");
  header('location:admin.php?mod='.$mod);
}
 
//Add Category
elseif ($mod=='category' AND $act=='input'){
    $insert = mysql_query("INSERT INTO category (id,category) VALUES ('','$_POST[nama_kategori]')");
    if($insert == FALSE){
        echo "
 
Kategori gagal ditambahkan, alesannya:".(mysql_error())."
 
";
        }
    header('location:admin.php?mod='.$mod);
    }
//Category Update
elseif ($mod=='category' AND $act=='update'){
    $update = mysql_query("UPDATE category SET category = '$_POST[nama_kategori]' WHERE id = '$_POST[id]'");
    if($update ==FALSE){
        echo "
 
Update gagal dilakukan karena:".(mysql_error())."
 
";
        }
    header('location:admin.php?mod='.$mod);
    }
 
//Add Product
elseif ($mod=='product' AND $act=='input'){
$lokasi_file    = $_FILES['fgambar']['tmp_name'];
$tipe_file      = $_FILES['fgambar']['type'];
$nama_file      = $_FILES['fgambar']['name'];
 
move_uploaded_file($lokasi_file,"../foto/$nama_file");
    $insert = mysql_query("INSERT INTO product (product_name,
                                                price,
                                                image,
                                                id_category,
                                                deskripsi)
                                        VALUES ('$_POST[product_name]',
                                                '$_POST[price]',
                                                '$nama_file',
                                                '$_POST[cat]',
                                                '$_POST[deskripsi]')");
    header('location:admin.php?mod='.$mod);
}
//Product Update
elseif ($mod=='product' AND $act=='update'){
    $lokasi_file    = $_FILES['fgambar']['tmp_name'];
    $tipe_file      = $_FILES['fgambar']['type'];
    $nama_file      = $_FILES['fgambar']['name'];
 
    //If the image doesnt change
    if (empty($lokasi_file)){
        mysql_query("UPDATE product SET product_name        = '$_POST[product_name]',
                                        price       = '$_POST[price]',
                                        id_category = '$_POST[cat]',
                                        deskripsi   = '$_POST[deskripsi]'
                                    WHERE id = '$_POST[id]'");
    }
    else {
        move_uploaded_file($lokasi_file,"../foto/$nama_file");
        mysql_query("UPDATE product SET product_name= '$_POST[product_name]',
                                        price       = '$_POST[price]',
                                        image   = '$nama_file',
                                        id_category = '$_POST[cat]',
                                        deskripsi   = '$_POST[deskripsi]'
                                    WHERE id = '$_POST[id]'");
    }
    header('location:admin.php?mod='.$mod);
}
?>

Pada bagian file aksi.php ini berisi fungsi yang nanti akan di butuhkan dalam proses-proses baik itu penginputan dan hal lainnya dalam mengelola form pada bagian admin.

  • Pada baris ke 7 dan 8 merupakan proses pengambilan variable yang di dapat dari parameter mod dan act
  • Pada baris ke 12 sampai 15 merupakan sintaks php yang berguna untuk proses hapus data pada tabel melalui variable mod dan id
  • Pada baris 19 sampai 25 merupakan sintaks php yang berguna untuk proses penginputan kategori yang ke dalam tabel kategori
  • Pada baris 27 sampai 33 merupakan sintaks php yang berguna untuk melakukan proses update pada tabel kategori
    • Pada baris 36 sampai 53 merupakan sintaks php yang berguna untuk melakukan proes menambahkan produk yang berisi teks dan gambar yang disimpan pada folder foto yang menggunakan fungsi php move_uploaded_file
    • Pada baris ke 55 sampai 78 merupakan sintaks php yang berguna untuk melakukan proses update produk yang memanfaatkan fungsi update pada mysql query</ul> Baiklah sekarang kita akan membuat beberapa file di dalam folder modul yang berisi seperti dibawah.

    • mod_kategori.php → yang berisi form untuk penginputan kategori dalam halaman admin
    • mod_produk.php → yang berisi form untuk penginputan produk dalam halaman admin
    • report.php → berisi tabel untuk laporan hasil dari penjualan produk

    Adapun sintaks yang dimasukan nya seperti berikut

    mod_kategori.php

    List Category"; $sql = mysql_query("SELECT * FROM category ORDER BY id DESC"); $no = 1; while ($r=mysql\_fetch\_array($sql)){ echo"
    nonama kategoriaksi
    $no$r[category]Edit Hapus "; $no++; } echo "
    "; break; //Form Add Kategori case "addkategori": echo"

    Tambah Kategori

    Nama Kategori:
    "; break; //Form Edit Category case"editkategori": $edit = mysql\_query("SELECT * FROM category WHERE id=’$\_GET[id]‘"); $r = mysql\_fetch\_array($edit); echo"

    Edit Kategori

    Nama Kategori:
    "; break; } ?>

    mod_produk.php

    <?php
    switch($_GET[act]){
    //Tampil Kategori
    default:
    echo"<h2>List Produk</h2>
        <input type=button value='Tambah Produk Baru' onClick=location.href='?mod=product&act=addproduct'>
        <table id='datatables' class='TableCart'>
            <thead><tr><th>no</th><th>Nama Produk</th><th>Harga</th><th>aksi</th></tr></thead><tbody>";
        $sql = mysql_query("SELECT * FROM product ORDER BY id DESC");
        $no = 1;
        while ($r=mysql_fetch_array($sql)){
            echo"<tr><td>$no</td>
                    <td>$r[product_name]</td>
                    <td>$r[price]</td>
                    <td><a href=?mod=product&act=editproduct&id=$r[id]>Edit</a>
                        <a href=aksi.php?mod=product&act=hapus&id=$r[id]>Hapus</a>
                    </td></tr>";
            $no++;
        }
        echo "</tbody></table>";
        break;
    //Form Add Product
    case "addproduct":
        echo"<h2>Add Product</h2>
            <form enctype='multipart/form-data' method=POST action=aksi.php?mod=product&act=input>
                <table class='TableCart'>
                    <tr><td>Nama Barang</td>
                        <td><input type=text name=product_name></td>
                    </tr>
                    <tr><td>Kategori</td><td><select name=cat>";
        $query = mysql_query("SELECT * FROM category");
            while ($t = mysql_fetch_array($query)){
                echo "<option value=$t[id]>$t[category]</option>";
                }
            echo"</select></td><td><a href=?mod=category>Add Category?</a></td>
                </tr>
                <tr><td>Harga</td><td><input type=text name=price></td></tr>
                <tr><td>Deskripsi</td><td><textarea name=deskripsi style='width: 277px; height: 67px;'></textarea></td></tr>
                <tr><td>Gambar</td><td><input type=file name='fgambar' size=40></td>
                <tr><td colspan=2>
                        <input type=submit name=submit value=Simpan>
                        <input type=button value=Batal onClick=self.history.back()>
                    </td>
                </tr>
                </table></form>";
        break;
    //Form Edit Product
    case"editproduct":
        $edit = mysql_query("SELECT * FROM product WHERE id='$_GET[id]'");
        $d = mysql_fetch_array($edit);
        echo"<h2>Edit Product</h2>
            <form method=POST enctype='multipart/form-data' action='aksi.php?mod=product&act=update'>
                <input type=hidden name=id value=$d[id]>
                <table class='TableCart'>
                    <tr><td>Nama Barang</td>
                        <td><input onfocus=this.value='' type=text name='product_name' value='$d[product_name]'></td>
                    </tr>
                    <tr><td>Kategori</td><td><select name=cat>";
        $query = mysql_query("SELECT * FROM category");
            while ($t = mysql_fetch_array($query)){
                if($d['id_category'] == $t['id']) {
                    echo "<option value='$t[id]' selected>$t[category]</option>";
                } else {
                    echo "<option value=$t[id]>$t[category]</option>";
                }
            }
            echo"</select></td><td><a href=?mod=category>Add Category?</a></td>
                </tr>
                <tr><td>Harga</td><td><input onfocus=this.value='' value='$d[price]' type=text name=price></td></tr>
                <tr><td>Deskripsi</td><td><textarea name=deskripsi style='width: 277px; height: 67px;'>$d[deskripsi]</textarea></td></tr>
                <tr><td></td><td><img width=100 src='../foto/$d[image]' /></td></tr>
                <tr><td>Gambar</td><td><input type=file id=fgambar name=fgambar size=40></td>
                <tr><td colspan=2>
                        <input type=submit name=submit value=Simpan>
                        <input type=button value=Batal onClick=self.history.back()>
                    </td>
                </tr>
                </table></form>";
        break;
    }
    ?>
    

</pre>

### report

<pre class="brush: php; title: ; notranslate" title="">&lt;?php
$sid = session_id();
$sql = mysql_query("SELECT * FROM order_product, product WHERE order_product.id_product=product.id");
?&gt;
&lt;h1 class="Judul"&gt;Laporan&lt;/h1&gt; &lt;table id="datatables" class="TableCart"&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;No&lt;/th&gt;
	&lt;th&gt;Nama Produk&lt;/th&gt;
	&lt;th&gt;Nama Pemesan&lt;/th&gt;
	&lt;th&gt;Alamat Pemesan&lt;/th&gt;
	&lt;th&gt;Telepon&lt;/th&gt;
	&lt;th&gt;Jumlah&lt;/th&gt;
	&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt; &lt;?php
$no = 1;
while ($r=mysql_fetch_array($sql)){
	echo"&lt;tr&gt;&lt;td&gt;$no&lt;/td&gt;
			&lt;td&gt;$r[product_name]&lt;/td&gt;
			&lt;td&gt;$r[name]&lt;/td&gt;
			&lt;td&gt;$r[address]&lt;/td&gt;
			&lt;td&gt;$r[phone]&lt;/td&gt;
			&lt;td&gt;$r[jumlah]&lt;/td&gt;
			&lt;td&gt;$r[status]&lt;/td&gt;
		 &lt;/tr&gt;";
$no++;
} ?&gt;
&lt;/tbody&gt;&lt;/table&gt;

</pre>

Baiklah untuk hasil akhir Membuat Toko Online – PHP dan MySQL Part 4 ini dapat di download

<a href="http://www.hitamcoklat.com/download/?b4bd1746b85fbf4fc0178466708a06dc" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','http://www.hitamcoklat.com']);" class="download">Download File</a>
  
<br clear="all" />
⤧  Next post Membuat Sub Kategori Dinamis PHP dan MySQL ⤧  Previous post Membuat Toko Online – PHP dan MySQL Part 3