OOP Base
PopojiCMS hanya menggunakan OOP untuk pemprosesan CRUD
saja. Ini memudahkan developer untuk menulis code karena akan lebih
mempersingkat waktu tentu saja dan tidak akan memakan bandwidth. Untuk mengenal
lebih jauh mengenai OOP CRUD ini, maka simak baik-baik tutorial di bawah ini.
Catatan :
Setiap file PHP
yang menggunakan OOP PopojiCMS agar jangan lupa untuk meng-include-kan file
po-database.php di permulaan script.
Create Proses
Proses ini dalam mysql dikenal dengan Insert. Berikut
adalah contoh Insert data ke database secara kontekstual :
mysql_query("INSERT
INTO post(title_id,title_en) VALUES('$title_id','$title_en')");
Menggunakan OOP PopojiCMS :
$table =
new PoTable('post');
$table->save(array(
'title_id' => $title_id,
'title_en' => $title_en
));
Read Proses
Proses ini dalam mysql dikenal dengan Select.
Berikut adalah contoh Select data dari database secara
kontekstual dan dengan OOP PopojiCMS :
Kontekstual :
$tampil
= mysql_query("SELECT * FROM post ORDER BY id_post DESC");
while($r=mysql_fetch_array($tampil)){
echo "$r[title_id]";
}
OOP PopojiCMS :
$tablepost
= new PoTable('post');
$posts =
$tablepost->findAll(id_post, DESC);
foreach($posts
as $post){
echo "$post->title_id";
}
Kontekstual :
$edit =
mysql_query("SELECT * FROM post WHERE id_post='$id'");
$r =
mysql_fetch_array($edit);
echo
"$r[title_id]";
OOP PopojiCMS :
$table =
new PoTable('post');
$currentPost
= $table->findBy(id_post, $id);
$currentPosts
= $currentPost->current();
echo
"$currentPosts->title_id";
Proses-proses di atas adalah proses-proses secara umum,
berikut adalah proses-proses lain yang bisa ditangani OOP PopojiCMS yang
semuanya bisa dilihat pada folder po-library -> po-database.php :
Semua function harus dipanggil dengan mendeklarasi
pemanggilan nama table terlebih dahulu kecuali pada fungsi findManualQuery() saja :
$table =
new PoTable('nama-table');
findManualQuery()
Adalah fitur baru yang tersedia sejak versi 1.2.5, dimana
memudahkan pembuatan query ke database dengan query-query yang kompleks.
$table =
new PoTable();
$data =
$table->findManualQuery($tabel = '', $field = '', $condition = '');
contoh :
$table =
new PoTable();
$data =
$table->findManualQuery($tabel = 'post', $field =
'id_post,id_category,title,seotitle', $condition = 'WHERE id_category =
"8" ORDER BY id_post DESC LIMIT 5');
penjelasan : ambil
data dari tabel post dengan field-field : id_post, id_category, title, dan
seotitle kemudian dengan filter kondisi id_category = 8, urutkan menurut
id_post dan sorting dengan metode DESC ambil sebanyak 5 data
findAll()
$data =
$table->findAll($field, $value);
contoh :
$table =
new PoTable('post');
$data =
$table->findAll(id_post, DESC);
Penjelasan : order data menurut id_post dan urutkan
dengan metode DESC.
findAllLimit()
$data =
$table->findAllLimit($field, $value, $value2);
contoh :
$table =
new PoTable('post');
$data =
$table->findAllLimit(id_post, DESC, '10');
Penjelasan : order data menurut id_post dan urutkan
dengan metode DESC kemudian ambil data sebanyak 10.
findAllLimitBy()
$data =
$table->findAllLimitBy($field, $field2, $value, $value2, $value3);
contoh :
$table =
new PoTable('post');
$table->findAllLimitBy(id_post,
id_category, '8', DESC, '10');
penjelasan : order data menurut id_post dan urutkan
dengan metode DESC kemudian ambil data sebanyak 10 dengan kondisi id_category =
8.
findAllLimitByAnd()
$data =
$table->findAllLimitByAnd($field, $field2, $field3, $value, $value2,
$value3, $value4);
contoh :
$table =
new PoTable('post');
$table->findAllLimitByAnd(id_category,
8, active, 'Y', id_post, DESC, 10);
Penjelasan : order data menurut id_post dan urutkan
dengan metode DESC kemudian ambil data sebanyak 10 dengan kondisi id_category =
8 dan active = Y.
findAllLimitByRand()
$data =
$table->findAllLimitByRand($field, $value, $value2);
contoh :
$table =
new PoTable('category');
$table->findAllLimitByRand(id_category,
'8', '10');
Penjelasan
: ambil data sebanyak 10 dari id_category = 8 kemudian data diurutkan acak.
findNotAll()
$data =
$table->findNotAll($field, $value);
contoh :
$table =
new PoTable('category');
$data =
$table->findNotAll(id_category, '8');
Penjelasan : ambil semua data kecuali data dengan
id_category = 8.
findAllRand()
$data =
$table->findAllRand();
contoh :
$table =
new PoTable('post');
$data =
$table->findAllRand();
Penjelasan
: ambil semua data dan diurutkan acak.
findBy()
$data =
$table->findBy($field, $value);
contoh :
$table =
new PoTable('post');
$data =
$table->findBy(id_post, '8');
Penjelasan : ambil satu data yang id_postnya adalah 8.
findByDESC()
$data =
$table->findByDESC($field, $value, $field2);
contoh :
$table =
new PoTable('post');
$data =
$table->findByDESC(id_category, 8, id_post);
Penjelasan
: ambil satu data yang id_categorynya adalah 8 dan order menurut id_post secara
DESC.
findByASC()
$data =
$table->findByASC($field, $value, $field2);
contoh :
$table =
new PoTable('post');
$data =
$table->findByASC(id_category, 8, id_post);
Penjelasan : ambil satu data yang id_categorynya adalah 8
dan order menurut id_post secara ASC.
findByAnd()
$data =
$table->findByAnd($field, $value, $field2, $value2);
contoh :
$table =
new PoTable('category');
$data =
$table->findByAnd(id_category, '8', active, 'Y');
Penjelasan : ambil satu data dengan id_categorynya adalah
8 dan activenya bernilai Y.
findByAndDESC()
$data =
$table->findByAndDESC($field, $value, $field2, $value2, $value3);
contoh:
$table =
new PoTable('post');
$data =
$table->findByAndDESC(id_category, '8', active, 'Y', id_post);
Penjelasan : ambil data yang id_categorynya adalah 8 dan
status activenya Y kemudian diurutkan menurut metode DESC.
findByAndASC()
$data =
$table->findByAndASC($field, $value, $field2, $value2, $value3);
contoh:
$table =
new PoTable('post');
$data =
$table->findByAndASC(id_category, '8', active, 'Y', id_post);
Penjelasan : ambil data yang id_categorynya adalah 8 dan
status activenya Y kemudian diurutkan menurut metode ASC.
findByLogin()
$data =
$table->findByLogin($field1, $value1, $field2, $value2, $field3, $value3);
contoh :
$table =
new PoTable('users');
$data =
$table->findByLogin(username, 'admin', password, 'admin123', blokir, 'N');
Penjelasan : ini hanya dipakai pada script login halaman
administrator.
findStat()
$data =
$table->findStat($field1, $value1, $field2);
Penjelasan : ini hanya dipakai untuk menampilkan grafik
pengunjung di halaman administrator.
findStatd()
$data =
$table->findStatd($field1, $field2, $field3, $value1, $field4);
Penjelasan : ini hanya dipakai untuk menampilkan grafik
pengunjung di halaman administrator.
findSearchPost()
$data =
$table->findSearchPost($value1, $value2);
contoh:
$table =
new PoTable('post');
$data =
$table->findSearchPost(Array data yang dicari, 10);
Penjelasan : cari kata menurut array data dan ambil
sebanyak 10 data jika ditemukan.
findRelatedPost()
$data =
$table->findRelatedPost($value, $value2, $value3, $value4, $value5);
contoh:
$table =
new PoTable('post');
$data =
$table->findRelatedPost(Array data yang dicari, 8, id_post, DESC, 5);
Penjelasan : cari post menurut array data dan id_postnya
kurang dari id_post = 8 serta id_post bukan 8 lalu ambil sebanyak 5 data diurutkan
DESC menurut id_post.
numRow()
$data =
$table->numRow();
contoh :
$table =
new PoTable('post');
$data =
$table->numRow();
Penjelasan : mencari dan menghitung banyaknya data dari
suatu table.
numRowBy()
$data =
$table->numRowBy($field, $value);
contoh :
$table =
new PoTable('post');
$data =
$table->numRowBy(id_category, '8');
Penjelasan : mencari dan menghitung banyaknya data dari
suatu tabel dengan kondisi id_category = 8.
numRowByAnd()
$data =
$table->numRowByAnd($field, $value, $field2, $value2);
contoh :
$table =
new PoTable('post');
$data =
$table->numRowByAnd(id_category, '8', active, 'Y');
penjelasan : mencari dan menghitung banyaknya data dari
suatu tabel dengan kondisi id_category = 8 dan activenya bernilai Y.
numRowSearchPost()
$data =
$table->numRowSearchPost($value1, $value2);
contoh :
$table =
new PoTable('post');
$data =
$table->numRowSearchPost(Array data yang dicari, 10);
penjelasan : mencari dan menghitung banyaknya data dari
suatu tabel dengan kondisi sesuai array data dan diambil sebanyak 10.
Update Proses
Proses ini dalam mysql dikenal dengan Update.
Berikut adalah contoh Update data ke database secara
kontekstual :
mysql_query("UPDATE
post SET title_id = '$title_id', title_en = '$title_en' WHERE id_post = '$id'");
Menggunakan OOP PopojiCMS :
$data =
array(
'title_id' => $title_id,
'title_en' => $title_en
);
$table =
new PoTable('post');
$table->updateBy('id_post',
$id, $data);
Option lainnya adalah dengan menambahkan kondisi AND :
$table->updateByAnd($field,
$value, $field2, $value2, $data);
Option lainnya adalah dengan menuliskan kondisi WHERE
pada blok function :
$table->update($data,
id_post = $id);
Delete Proses
Berikut adalah contoh Delete data di database secara
kontekstual :
mysql_query("DELETE
FROM post WHERE id_post='id'");
Menggunakan OOP PopojiCMS :
$tabledel
= new PoTable('post');
$tabledel->deleteBy('id_post',
$id);
Option lainnya adalah dengan menuliskan kondisi WHERE
pada blok function :
$tabledel->delete(id_post
= $id);
Kontekstual Proses
PopojiCMS juga menyediakan option untuk para developer
yang mau tetap di CRUD kontekstual, caranya adalah dengan memasukan code
seperti ini sebelum melakukan proses CRUD :
$dbhostsql
= DATABASE_HOST;
$dbusersql
= DATABASE_USER;
$dbpasswordsql
= DATABASE_PASS;
$dbnamesql
= DATABASE_NAME;
$connection
= mysql_connect($dbhostsql, $dbusersql, $dbpasswordsql) or die(mysql_error());
mysql_select_db($dbnamesql,
$connection) or die(mysql_error());
Codenya sudah seperti di atas, jangan dirubah lagi.
Contoh :
<?php
$dbhostsql = DATABASE_HOST;
$dbusersql = DATABASE_USER;
$dbpasswordsql = DATABASE_PASS;
$dbnamesql = DATABASE_NAME;
$connection = mysql_connect($dbhostsql,
$dbusersql, $dbpasswordsql) or die(mysql_error());
mysql_select_db($dbnamesql, $connection) or
die(mysql_error());
$tampil = mysql_query("SELECT * FROM
post ORDER BY id_post DESC");
while($r=mysql_fetch_array($tampil)){
echo "$r[title_id]";
}
?>
Catatan : Setiap file PHP yang menggunakan OOP PopojiCMS
agar jangan lupa untuk meng-include-kan file po-database.php di permulaan
script.
Demo PopojiCMS.
Download PopojiCMS.
Demo PopojiCMS.
Download PopojiCMS.
Comments
Post a Comment