Nested comments in PHP & MySQL

24 October 2013 Leave a comment

I searched through the forums but couldn’t get an authoritative answer. I want to implement a nested comment structure in a way like this:

<ul>
    <li>This is the parent first comment!
        <ul>
            <li>This is the reply for the first parent comment!
                <ul>
                    <li>This is a reply for the first reply of the parent comment!</li>
                    <li>This is a third reply for the first parent comment!</li>
                </ul>
            </li>
            <li>This is another reply for first parent comment!</li>
        </ul>
    </li>
    <li>This is gonna be parent second comment!
        <ul>
            <li>This is a reply for the second comment!</li>
        </ul>
    </li>
    <li>This is fourth parent comment!</li>
</ul>

The dump for my table is below:

+----+------------------------------------------------------------+--------+
| id | text                                                       | parent |
+----+------------------------------------------------------------+--------+
|  1 | This is the parent first comment!                          |      0 |
|  2 | This is gonna be parent second comment!                    |      0 |
|  3 | This is the reply for the first parent comment!            |      1 |
|  4 | This is another reply for first parent comment!            |      1 |
|  5 | This is a reply for the first reply of the parent comment! |      3 |
|  6 | This is a reply for the second comment!                    |      2 |
|  7 | This is a third reply for the first parent comment!        |      3 |
|  8 | This is fourth parent comment!                             |      0 |
+----+------------------------------------------------------------+--------+

I know how to use mysql_query() and while() loops. A beginner in PHP & MySQL. Please help me out.

ANSWER:

I had done something similar for my blogpost. Yet, I just tried out with the same data. When you saynested comments it is better you can use nested functions this way:

<?php
    mysql_connect('localhost', 'root');
    mysql_select_db('nestedcomments');
    function getComments($parent)
    {
        $res = mysql_query("SELECT * FROM `nestcomm` WHERE `parent` = $parent");
        if (mysql_num_rows($res))
        {
            echo "<ul>\n";
            while (($dat = mysql_fetch_array($res)) !== false)
                echo "<li>", $dat["text"], getComments($dat["id"]), "</li>\n";
            echo "</ul>\n";
        }
        else
            echo ($parent === 0) ? 'No Comments!' : "";
    }
    getComments(0);
?>

As I said before I have used nested functions, and as you asked the output is almost same (without the braces) this way:

<ul>
<li>This is the parent first comment!<ul>
<li>This is the reply for the first parent comment!<ul>
<li>This is a reply for the first reply of the parent comment!</li>
<li>This is a third reply for the first parent comment!</li>
</ul>
</li>
<li>This is another reply for first parent comment!</li>
</ul>
</li>
<li>This is gonna be parent second comment!<ul>
<li>This is a reply for the second comment!</li>
</ul>
</li>
<li>This is fourth parent comment!</li>
</ul>

Hope this helps out.

SOURCE

Memindahkan Blog WordPress Dari Localhost Ke Server Hosting

26 September 2013 Leave a comment

Pada update kali ini  akan memberikan panduan bagaimana memindahkan (migrasi) blog WordPress beserta seluruh isinya dari localhost ke server hosting. Ok, tanpa banyak cakap persiapkan secangkir kopi, sebungkus rokok, Autan, Paramex dan sedikit camilan biar lebih tenang …  :D .

Langkah migrasi dari localhost ke server hosting;

Tutorial memindahkan blog dari localhost ini singkat mudah-mudahan mudah di pahami, jadi buat yang masih baru dengan urusan WordPress tenang saja, kan udah siap Paramex :D .

1. Persiapan di Server Hosting:

  • Login ke halaman admin WordPress kemudian Settings Permalink sesuai dengan permalink yang Kamu gunakkan di localhost. Save dulu pekerjaan Kamu.
  • Buka cpanel>>file manager, hapus wp-content yang berada di directory publict_html .

hapus wp-content

  • Sekarang Buka phpmyadmin, hapus seluruh table database  blog kamu dengan cara mencontreng seluruh tabel, lalu pada drop down “With selected” pilih Drop. Selanjutnya pada pertanyaan konfirmasi untuk penghapusan pilih yes.

hapus isi database

  • Save dulu pekerjaan kamu.

2. Persiapan di Localhost:

  • Backup Database:
    • Buka phpmyadmin (http://localhost/phpmyadmin/)
    • Buka database WordPress blog kamu, contreng semua table, pada drop down “With selected” pilih Export.
    • pada Export Method, pilih  Custom – display all possible options.
    • Cari “Save output to a file”, Compression: pilih Zipped.

    compress database

    • Anda sudah memiliki backup database.
  • Backup wp-content
    • Buat file wp-content.zip dari folder wp-content dengan klik kanan “add to Archive…“.Archive format pilih zip.

3. Proses migrasi dari localhost ke server hosting

  • Upload file wp-content.zip
    • Login ke cpanel hosting Kamu, buka file manager.
    • Upload file wp-content.zip di directory publict_html, tunggu hingga proses selesai lalu extract.
  • Upload database
    • Buka kembali phpmyadmin di cpanel hosting, buka database wordpress Kamu yang tadi di kosongkan, lalu import hasil backup database (ada di komputer kamu) dengan klik menu Import.
    • Tunggu hingga proses selesai.
  • Klik SQL
  • Masukkan kode berikut, lalu klik Go.
UPDATE wp_posts SET guid = replace(guid,'http://localhost','http://domainkamu.com');
UPDATE wp_posts SET post_content = replace(post_content,'http://localhost''http://domainkamu.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://localhost''http://domainkamu.com');
UPDATE wp_options SET option_value = replace(option_value,'http://localhost''http://domainkamu.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Catatan: http://localhost silahkan di ganti dengan url blog Kamu di localhost,bisa jadi url kamuhttp://localhost/wordpress atau yang lainnya. Begitu juga dengan http://domainkamu.com ganti dengan nama domain Kamu yang baru.

Sampai disini seharusnya blog WordPress anda sudah dapat di buka, silahkan login ke halaman admin. Update struktur permalink untuk memastikan htacces sudah benar.

 

SOURCE

Memadukan JQuery Easy UI dan JqGrid

8 October 2012 52 comments

Sebenaranya baik Jquery Easy UI(selanjutnya JEasyUI) dan jqGrid sama2 bagus. keduanya sama2 plugin dari jquery.

Ada beberapa kelebihan dan kekurangan dari masing2 plugin tersebut, Yaitu:

1. Jqgrid lebih fokus ke grid nya saja atau tidak selengkap jEasyUI (Namanya juga JqGRID).

2. jEasyUI mempunyai sedikit pilihan theme(cuma punya 4 pilihan theme), sementara jqGrid punya banyak pilihan theme karena jqGrid mengambil theme bawaan dari Jquery UI.

Anda bisa melihat DEMO page dari JqGRID di http://trirand.com/blog/jqgrid/jqgrid.html

dan DEMO page dari JEasyUI di http://www.jeasyui.com/demo/index.php

Dan ini adalah hasil dari dari perpaduan antara JQuery Easy UI dan JqGRID

jqgrid jquery easy ui

jqgrid jquery easy ui

 

 

http://demo.warungkode.com/inventori/index.php

User:admin

Pass:admin

Silahkan dicaci maki…:D

PHP Autopost ke facebook

8 October 2012 2 comments

Bagaimanapun untuk mendukung dan mempublikasikan konten di Facebook sebagai saluran paralel ke website  normal dapat meningkatkan kinerja bagi banyak perusahaan.

Namun posting di facebook tidak harus menjadi tugas manual yang membutuhkan kerja ekstra. Postingan saya ini akan membantu Anda pada sebuah solusi yang dapat dengan mudah diintegrasikan dalam sistem CMS yang sudah ada, dan memungkinkan lintas posting konten ke Facebook.

Facebook fan page sepertinya sekarang menjadi suatu keharusan dimiliki oleh website/portal yang mempunyai banyak fans atau penggemar.

Selain untuk menampung para fan, facebook fan page juga berguna untuk memberikan info singkat atau berita singkat sebagai manifestasi dari berita di website/portal resmi.

Melihat kecendrungan para pengguna facebook di indonesia yang semakin meningkat, sebagian dari mereka menggunakan facebook untuk mengupdate informasi dengan cepat.

Facebook terus menyempurnakan SDK dan metode untuk berkomunikasi dengan Facebook. Script di posting ini mendukung perubahan otentikasi terbaru Facebook yang akan dilaksanakan 1 Oktober 2012.

Posting ini memandu Anda melalui pembuatan aplikasi berbasis PHP Facebook yang secara otomatis dapat memposting pesan dan jenis-jenis konten di dinding Facebook Anda.

Nah, Bagaimana caranya jika kita ingin ketika memposting berita/informasi di website kita maka otomatis terposting juga di facebook fans page? tanpa repot-repot membuka facebook dan mempostingnya kembali.

Berikut ini tutorial singkat bagaimana membuat autopost di facebook fanspage dan atau timeline facebook kita.

1. Download Facebook PHP SDK

Langkah pertama, adalah buatlah folder baru di webserver anda untuk menyimpan aplikaisi facebook kita kali ini. Misalnya nya kita beri nama folder “facebook_sdk”

Download Facebook PHP SDK dari GitHub, unzip  and upload ke folder  “facebook_sdk” yang telah kita buat tadi .

file Facebook SDK bisa anda download dari sini.

2. Mendaftar Aplikasi Facebook

Facebook memungkinkan mendaftarkan aplikasi untuk berinteraksi dengan akun Facebook dan halaman. Langkah selanjutnya adalah mendaftarkan aplikasi Anda (Jika anda belum mendaftarkannya).

Anda dapat mendaftarkan aplikasi Facebook baru pada halaman ini

Untuk mendaftar aplikasi Facebook,  Anda perlu terlebih dahulu untuk memberikan nama app yang unik.

Jika semuanya OK, Anda bisa melihat  layar konformasi pendaftaran, di mana Anda mendapatkan dua informasi penting:

a. App ID / API Key
b. App Secret

Informasi tersebut diperlukan untuk aplikasi yang akan diizinkan untuk berkomunikasi dengan Facebook, tetapi juga harus disimpan sebagai rahasia.

3. Membuat script php untuk autopost ke facebook

Sekarang saatnya untuk membuat script PHP untuk posting ke fans page /timeline Facebook.

saya mengasumsikan bahwa Anda telah men-download dan sudah mengekstrak  Facebook PHP SDK (dengan struktur file dan folder  asli)  dalam subfolder bernama “facebook_sdk” yang telah kita create di atas.

Berikut ini script lengkapnya:

</pre>
//yang sudah kita dowload dari gtihub

require 'facebook_sdk/src/facebook.php';

// configuration
 $appid = 'App Id anda';
 $appsecret = 'App Secret Anda'';

//deret angka ini  '309586582470813 ' merupakan id dari salah satu facebook fans page;
//Anda bisa menggantinya dengan facebook id Anda sendiri atau id dari fans page lain

//untuk mendapatkannya silahkan buka http://rieglerova.net/how-to-get-a-facebook-fan-page-id/
 $pageId = '309586582470813';
 $msg = $dataProduk['judul'];
 $title = $dataProduk['judul'];
 $uri = 'http://xxxx.com/index.php?id='.$dataProduk['id'];
 $desc = limit_words(strip_tags($dataProduk['deskripsi']), 25);
 $pic = "http://xxxxx.com/images/products/thumbnail/t11_".$dataProduk['image1'];

$facebook = new Facebook(array(
 'appId' =>$appid,
 'secret' =>$appsecret,
 'cookie' => true,
 ));

//untuk mendapatkan access_token silahkan baca di http://www.damnsemicolon.com/php/auto-post-facebook-with-facebook-sdk

 try {
 $attachment = array(
 'access_token' => 'AAAHYC3Pw0bIBAJ6b1pRZCsOQuZBbDXqyH1U4ZCMnfkxCH7B3oDbSYTjK9ihavuhg9ZA5vtUV31RALFMUm2BD5xt7y8Yxr0Vqn96EAZDZD',
 'message' => $msg,
 'name' => $title,
 'link' => $uri,
 'description' => $desc,
 'picture'=>$pic,
 //'actions' => json_encode(array('name' => $action_name,'link' => $action_link))
 );

$status = $facebook->api("/$pageId/feed", "post", $attachment);
 } catch (FacebookApiException $e) {
 error_log($e);
 $user = null;
 }

echo "Post to Facebook success.....";
<pre> ?>

Terima Kasih sudah berkunjung, Silakan tinggalkan komentar

Jika penjabaran saya kurang jelas silahkan baca referensi disini;

http://www.damnsemicolon.com/php/auto-post-facebook-with-facebook-sdk

http://tips4php.net/2010/12/automatic-post-to-facebook-from-php-script/

http://rieglerova.net/how-to-get-a-facebook-fan-page-id/

Tag-tag HTML 5 yang harus Anda ketahui

30 August 2012 2 comments

1. Apa itu HTML 5?

Jika kita perhatikan secara seksama komponen yang digunakan dalam halaman website yang rich content, para web developer dikagetkan dengan adanya flash yang sebenarnya bukan web, tetapi aplikasi yang dijalankan di atas sites.Sebagian besar orang menggunakan flash sehingga tak ada rujukan bahasa standar seperti HTML dan XHTML untuk sebuah halaman website, serta memperburuk jaringan karena setiap kali kita membuka halaman flash, seolah-olah jaringan dipaksa untuk mengambil seluruh konten yang ada di server akhirnya beban nya sangat tinggi.

Namun setelah berkembangnya javascript beserta AJAX nya, flash pun berangsur-angsur ditinggalkan karena “kecanggihan” nya hampir menyamai Flash. Tetapi satu lagi kekurangan yang harus dihadapi adalah tidak adanya bahasa standar yang digunakan secara world wide dalam menggunakan js, ini seperti tak adanya validator untuk bahasa ini sehingga perkembangannya benar-benar terlalu rapid soalnya bukan dikembangkan oleh organisasi W3 tetapi oleh komunitas seperti mootools dan jquery.

Karena alasan tersebut, W3.org sebagai organisasi resmi world wide, mengharuskan pembuatan standar baru setelah XHTML yang sudah tak mampu “menampung kekayaan” konten masa kini. Dibuatlah standar bahasa mark up baru yaitu HTML 5.

Selain terdapatnya fungsi-fungsi baru, HTML5 juga memberikan beberapa kemudahan seperti pada bagian awal file HTML kita tidak lagi dipusingkan menulis coding DOCTYPE yang panjang :

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>

Pada HTML5, DOCTYPE dapat ditulis lebih ringkas :

<!DOCTYPE html>

Kemudian pada baris berikutnya kita tulis seeprti ini:

<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />

Versi HTML5 berubah menjadi :

<meta charset=”utf-8″ />

Selain itu, coding CSS dan Javascript pada HTML5 tidak perlu lagi menulis seperti type=text/css dan type=text/javascript :

<style>
* { margin:0px; padding:0px;}
</style>

 

<script type="text/javascript" src="”http://www.google.com/jquery.js”"></script>&nbsp;

HTML5 juga menghilangkan beberapa tag ataupun element yang telah jarang dipakai dan digantikan oleh CSS seperti acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, s, strike, tt, u. Read more…

Cara Ambil Harga Pengiriman (Ongkos Kirim) JNE dengan PHP

3 August 2012 74 comments

Setelah melakukan pencarian panjang akhirnya saya menemukan apa yang saya cari , yaitu : cara menghitung biaya pengiriman JNE.

Awalnya saya search di google dengan keyword “JNE API”. Mengejutkan hasilnya, ternyata JNE tidak mengeluarkan atau membuat API. Entah dengan alasan apa perusahaan pengiriman itu memproteksi diri untuk tidak membuat API. Bahkan sekarang teknik-teknik lama sudah tidak bisa digunakan karena adanya captcha di web nya JNE(padahal dulu gak ada). Semakin jelas kan klo JNE memang memproteksi diri.

Stop. dari beberapa hasil pencarian google dengan keyword di atas akhirnya saya “nyasar” di http://api.ongkir.info/docs/index.html. dan inilah yang saya cari-cari selama ini.

Di bagian paling bawah web ongkir.info ada tulisan “Ongkir.Info tidak berafiliasi dengan perusahaan yang disebutkan.” WTF?? Saya heran  justru web/orang lain malah yang membuat API JNE.

Ok, cukup sampai sini kejengkelan saya terhadap JNE. Kita lanjut bagaimana cara memanfaatkan API yang diberikan oleh ongkir.info ini ?

pertama silahkan baca disini http://api.ongkir.info/docs/starting.html

Selanjutnya, lakukan registrasi di http://api.ongkir.info//akun/registrasi

Setalah mendapakan email verifikasi dari ongkir.info maka login ke http://api.ongkir.info/akun/login. Jika login sukses maka anda akan mendapatkan API-Key berupa deretan karakter sepanjang 32, digunakan untuk validasi pemanggilan API.

selanjutnya untuk memudahkan penggunaan API Ongkir.Info, telah disediakan pustaka (library) Anda dapat mendownload di http://api.ongkir.info/docs/example/php_sample.html.  buat file baru dengan nama class.php, copy paste script php di bagian Wrapper untuk API City dan Wrapper untuk API Cost.

berikut ini file class.php yang sudah saya modifikasi sedikit.


<?php
function get_city($query,$type)
{
//library yang harus anda download
require_once 'REST_Ongkir.php';

 $rest = new REST_Ongkir(array(
 'server' => 'http://api.ongkir.info/'
 ));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
 $result = $rest->post('city/list', array(
 'query' => $query,
 'type' => $type,
 'courier' => 'jne',
 'API-Key' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' ), 'JSON');

 try
 {
 $status = $result['status'];

 // Handling the data
 if ($status->code == 0)
 {
 return $cities = $result['cities'];
 //print_r($cities);
 //foreach ($cities->item as $item)
 //{
 //echo 'Kota: ' . $item . '<br />';
 // }
 }
 else
 {
 echo 'Tidak ditemukan kota yang diawali "band"';
 }

 }
 catch (Exception $e)
 {
 echo 'Processing error.';
 }
}

function get_cost($from, $to,$weight)
{
//library yang harus anda download
 require_once 'REST_Ongkir.php';

 $rest = new REST_Ongkir(array(
 'server' => 'http://api.ongkir.info/'
 ));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
 $result = $rest->post('cost/find', array(
 'from' => $from,
 'to' => $to,
 'weight' => $weight.'000',
 'courier' => 'jne',
'API-Key' =>'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456'
 ));

 try
 {
 $status = $result['status'];

 // Handling the data
 if ($status->code == 0)
 {
 $prices = $result['price'];
 $city = $result['city'];

 echo 'Ongkos kirim dari ' . $city->origin . ' ke ' . $city->destination . '<br /><br />';

 foreach ($prices->item as $item)
 {
 echo 'Layanan: ' . $item->service . ', dengan harga : Rp. ' . $item->value . ',- <br />';
 }
 }
 else
 {
 echo 'Tidak ditemukan jalur pengiriman dari surabaya ke jakarta';
 }

 }
 catch (Exception $e)
 {
 echo 'Processing error.';
 }
}

//$kota = get_city('ban','origin');
//echo json_encode($kota);

?>

Setelah itu buat lah form kira-kira tamplannya seperti ini:

Read more…

Membuat Laporan(Report) dengan PHP Excel

21 July 2012 39 comments

Mungkin bagi newbi-newbi termasuk saya sering bingung jika berhadapan dengan reporting atau membuat laporan di PHP. Baik itu laporan dalam bentuk PDF atau EXCEL.

Saya sendiri pernah mencoba 3 (tiga) library untuk membuat laporan dalam bentuk PDF (bisa dilihat disni). Untuk laporan atau reporting dalam bentuk excel ada satu library PHP yang sangat mengagumkan, yaitu PHPExcel.

Sebelumnya saya biasanya memakai cara biasa untuk membuat laporan dalam excel, cara ini termasuk cara yang paling mudah bagi saya:


<?php
// isi $excel akan bernilai true apabila ditemukan parameter get dengan nama 'excel'
$excel = isset($_GET['excel']);
if($excel):
 // buat nama file unique untuk di download
 $filename = 'export-'.date('YmdHis');
 // dengan perintah di bawah ini akan memunculkan dialog download di browser anda
 header("Content-type: application/x-msdownload");
 // perintah di bawah untuk menentukan nama file yang akan di download
 header("Content-Disposition: attachment; filename=".$filename.".xls");
else:
 // tag header di html disembuyikan apabila sedang convert html to excel
?>
<html>
<head>
<style type="text/css">
/* setting format tabel */
table {
 font-family: Verdana;
 font-size: 8pt;
 border-width: 1px;
 border-style: solid;
 border-color: #ccd2d2;
 border-collapse: collapse;
 background-color: #f9f9f9;
}
th {
 color: #f00;
 font-size: 8pt;
 text-transform: uppercase;
 text-align: center;
 padding: 0.5em;
 border-width: 1px;
 border-style: solid;
 border-color: #000;
 border-collapse: collapse;
 background-color: #000;
}
td {
 padding: 0.1em;
 color: #272727;
 vertical-align: top;
 border-width: 1px;
 border-style: solid;
 border-color: #000;
 border-collapse: collapse;
 font-size: 8pt;
}
</style>
<title>Membuat Report Excel Dari HTML Dengan PHP</title>
</head>
<body>
<?php endif; ?>
<?php if(!$excel): ?>
<!-- Tombol di bawah dan penutup html hanya akan dipanggil apabila dalam kondisi melihat data,
 tapi ketika menampilkan file excel tombol ini disembunyikan -->
<div align="left" style="margin-top:15px">
 <input type="button" onClick="document.location='?excel=1'" value="Export to Excel" />
</div>
<br>
<?php endif; ?>
<?php
//setting koneksi anda
$server = "localhost";
$username = "root";
$password = "";
$db = "excel";
$tbl = "customer";

$koneksi = mysql_connect($server,$username,$password);
mysql_select_db($db, $koneksi) or die("Cannot connect to database..");

// create tabel dengan php
echo "<div align='left'><img src='http://smartcoderszone.com/wp-content/uploads/2010/09/generate-excel-report-with-php-and-mysql2.jpg' width='100' height='150'><div><br><br><br><br><br>";
echo "<p> </p>";
echo "<div align='left' style='color='#ff0000'><strong>DATA PEGAWAI</strong>";
echo "<table border='1'>";
echo " <tr bgcolor='#cccccc'>";
echo " <th>NO</th>";
echo " <th>company_name</th>";
echo " <th>email</th>";
echo " <th>city</th>";
echo " </tr>";

 $str = " SELECT * FROM ".$db.".".$tbl.
 " order by ID desc ";
 $query = mysql_query($str);
 if($query && mysql_num_rows($query) > 0){
 $no = $posisi+1;
 while($row = mysql_fetch_object($query)){
 //if($bgcolor=='#f1f1f1'){$bgcolor='#ffffff';}
 //else{$bgcolor='#f1f1f1';}
 echo "<tr bgcolor=$bgcolor>";
 echo " <td align='center' height='18'><strong>$no</strong></td>";
 echo " <td>{$row->company_name}&nbsp;</td>";
 echo " <td>{$row->email}&nbsp;</td>";
 echo " <td>{$row->city}&nbsp;</td>";
 $no++;
 }
 }
 //echo $str;
echo " </tr>";
echo "</table>";
echo "</div>";
?>
</body>
</html>

Cara yang lebih rumit tapi lebih bisa di custom, sebelum saya “menemukan” phpexcel saya sering pakai cara ini

dan sepertinya cara ini sering digunakan karena kebanyakan tutorial di internet memakai cara ini: Read more…

Follow

Get every new post delivered to your Inbox.

Join 850 other followers

%d bloggers like this: