Jumat, 11 Mei 2012

Membuat Script Kommentar

Banyak sekali pengunjung setia blog ini yang menanyakan ke saya, bagaimana cara membuat script komentar dalam blog ini. He.. 3x jujur saja, bahwa di blog ini saya tidak pernah membuat script tersebut sama sekali karena blog ini saya bangun menggunakan WordPress. Di dalam WordPress, memang sudah tersedia fasilitas untuk mengirim komentar yang ditujukan bagi para pengunjung blognya.
But.. anyway di sini saya akan memberikan sedikit ide sederhana bagaimana membuat script PHP untuk memberikan komentar ala blog tersebut. Mudah-mudahan paparan saya ini bisa berguna buat Anda yang ingin mengembangkan script komentar ala blog di situs buatan sendiri atau bahkan siapa tahu ada yang membuat software blogging sendiri seperti layaknya WordPress buatan anak bangsa Indonesia :-)

OK.. sebelum kita bahas point utama pembuatannya, saya berikan dulu screen shot hasilnya berikut ini untuk memberikan gambaran awal skenario penggunaan scriptnya.
Script PHP MySQL - Membuat Komentar Ala Blog
Gambar di atas menunjukkan tampilan pertama (halaman index) dari script yang menampilkan list atau daftar artikel yang telah dipublish. Sekarang perhatikan tampilan di bawah ini yang menunjukkan tampilan script setelah salah satu artikel diklik
Script PHP MySQL - Membuat Komentar Ala Blog
Terlihat pada gambar di atas bahwa di bawah konten artikel terdapat bagian komentar yang nantinya akan diisi oleh pengunjung. Perhatikan hasil tampilan script komentarnya setelah user mengisi komentar pada artikel tersebut di bawah ini
Script PHP MySQL - Membuat Komentar Ala Blog
Script PHP MySQL - Membuat Komentar Ala Blog
Nah.. sedangkan gambar di bawah ini tampilan bila sudah ada lebih dari satu komentar yang ada dalam artikel.
Script PHP MySQL - Membuat Komentar Ala Blog
OK dah paham ya dengan skenario tampilan dan penggunaannya? Kalo sudah, kita bisa mulai membuat script komentar ala blog ini.
Pertama, kita siapkan tabel databasenya. Di sini saya hanya membuat 2 tabel saja, yaitu untuk menyimpan data konten artikel serta tabel untuk menyimpan data komentar. Perlu diingat bahwa hal terpenting untuk pembuatan script komentar ini adalah pengkaitan antara suatu artikel dengan komentar yang berada di dalam postingan artikel tersebut. Oleh karena itu di dalam tabel komentar, kita harus membuat field yang menghubungkan suatu komentar dengan artikel tertentu.

1.CREATE TABLE `artikel` (
2.`idArtikel` int(11) auto_increment,
3.`title` varchar(30),
4.`content` text,
5.`author` varchar(30),
6.`datePub` date,
7.PRIMARY KEY  (`idArtikel`)
8.);
01.CREATE TABLE `komentar` (
02.`idComment` int(11) auto_increment,
03.`idArtikel` int(11),
04.`commentAuthor` varchar(30),
05.`urlAuthor` varchar(30),
06.`comment` text,
07.`commentDate` date,
08.PRIMARY KEY  (`idComment`)
09.);
Perhatikan struktur tabel ‘komentar’ di atas bahwa di dalam tabel tersebut terdapat field ‘idArtikel’. Field ini digunakan untuk merelasikan suatu komentar dengan artikel tertentu yang ada di tabel ‘artikel’ melalui id artikelnya. Sehingga suatu komentar bisa jelas miliknya artikel yang mana.
OK sekarang saya berikan sampel data konten artikelnya (2 data saja ya).
1.INSERT INTO `artikel` VALUES ('1', 'Title Artikel 1', 'Ini adalah konten artikel 1. Ini adalah konten artikel 1.
2.Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1.
3.Ini adalah konten artikel 1. Ini adalah konten artikel 1. Ini adalah konten artikel 1. ', 'Rosihan Ari',
4.'2010-01-20');
1.INSERT INTO `artikel` VALUES ('2', 'Title Artikel 2', 'Ini adalah konten artikel 2. Ini adalah konten artikel 2.
2.Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2.
3.Ini adalah konten artikel 2. Ini adalah konten artikel 2. Ini adalah konten artikel 2. ', 'Rosihan Ari',
4.'2010-01-21');
Yes !! tabel untuk menyimpan data artikel dan komentar sudah dibuat, now what? ya… kita mulai bikin scriptnya deh.
Script pertama yang dibuat adalah script untuk menampilkan list artikelnya dulu (sesuai skenario di atas). Ini dia scriptnya. Oya.. hampir lupa, sebelum membuat script list artikel, ada baiknya kita buat dulu script untuk koneksi ke MySQL nya.
koneksi.php
1.
2.mysql_connect("dbhost", "dbuser", "dbpass");
3.mysql_select_db("dbname");
4.?>
Silakan diisi sendiri ya parameter koneksi di atas.. :-)
Selanjutnya kita bisa buat script untuk menampilkan list artikelnya
index.php
01.

Daftar Artikel

02. 
03.
04. 
05.// koneksi ke mysql
06.include "koneksi.php";
07. 
08.// query SQL untuk membaca semua artikel terurut berdasarkan id nya
09.$query = "SELECT * FROM artikel ORDER BY idArtikel";
10.$hasil = mysql_query($query);
11.while ($data = mysql_fetch_array($hasil))
12.{
13.// menampilkan list judul artikel
15.}
16. 
17.?>
Keterangan:
Pada script di atas, setiap title artikel diberikan link menuju ke script view.php untuk menampilkan detail konten artikelnya. Oya, jangan lupa gunakan parameter pada link nya ya. Dalam hal ini parameter yang digunakan dalam link nya adalah id setiap artikel.
Sekarang, kita buat script view.php nya. Di dalam script ini nanti kita akan buat bagian untuk menampilkan full isi artikelnya berdasarkan id artikel yang berasal dari parameter link, sekaligus bagian untuk menampilkan list komentar dan form untuk mengisi komentar.
view.php
01.
02.// koneksi ke mysql
03.include "koneksi.php";
04. 
05.// membaca id artikel
06.$idArtikel = $_GET['idArtikel'];
07. 
08.// proses yang dilakukan setelah tombol submit komentar diklik
09.if ($_GET['act'] == "submit")
10.{
11.// membaca data komentar dari form
12.$nama = $_POST['nama'];
13.$url = $_POST['url'];
14.$komentar = $_POST['komentar'];
15.$idArtikel = $_POST['idArtikel'];
16.$tglKomentar = date("Y-m-d");
17. 
18.// proses insert komentar ke database
19.$query = "INSERT INTO komentar (idArtikel, commentAuthor, urlAuthor, comment, commentDate)
20.VALUES ('$idArtikel', '$nama', '$url', '$komentar', '$tglKomentar')";
21.$hasil = mysql_query($query);
22.}
23. 
24.// proses menampilkan detail artikel berdasarkan id artikel
25.$query = "SELECT * FROM artikel WHERE idArtikel = '$idArtikel'";
26.$hasil = mysql_query($query);
27.$data  = mysql_fetch_array($hasil);
28. 
29.echo "

".$data['title']."

";
30.echo "Tanggal publikasi: ".$data['datePub'].", Oleh: ".$data['author']."
";
31.echo "".$data['content']."
";
32. 
33.// proses menampilkan komentar berdasarkan id artikelnya
34. 
35.echo "

Komentar

"
;
36. 
37.$query = "SELECT * FROM komentar WHERE idArtikel = '$idArtikel'";
38.$hasil = mysql_query($query);
39. 
40.if (mysql_num_rows($hasil) > 0)
41.{
42.// jika ada komentar (jumlah data hasil query > 0), maka tampilkan komentarnya
43.while ($data = mysql_fetch_array($hasil))
44.{
45.echo "Dikirim oleh: ".$data['commentAuthor']." (']."'>".$data['urlAuthor']."), Tanggal: ".$data['commentDate']."
";
46.echo "".$data['comment']."

";
47.}
48.}
49.// jika tidak ada komentar (jumlah data hasil query = 0), tampilkan keterangan belum ada komentar
50.else if (mysql_num_rows($hasil) == 0) echo "Belum ada komentar.
"
;
51. 
52.// menampilkan form pengisian komentar
53. 
54.echo "

Kirim Komentar

"
;
55. 
56.echo "
']."?idArtikel=".$idArtikel."&act=submit'>";
57.echo "";
58.echo "
";
59.echo "
";
60.echo "
";
61.echo "
";
62.echo "
Nama Anda:
URL Anda:
Komentar Anda:
";
63.echo "";
64. 
65.?>
Keterangan:
Perhatikan perintah berikut ini pada script di atas
1.// membaca id artikel
2.$idArtikel = $_GET['idArtikel'];
Perintah di atas digunakan untuk membaca id artikel berasal dari link yang ada di index.php nya maupun dari action form submit komentarnya. ID artikel ini nantinya digunakan query SQL untuk menampilkan detail artikel , menampilkan komentar berdasarkan ID artikel tersebut, maupun untuk query INSERT komentarnya.
Oya, mungkin ada yang bertanya mengapa bagian script untuk proses menyimpan komentar (INSERT komentar) yang ada di blok atau bagian
1.if ($_GET['act'] == "submit")
2.{
3....
4.}
diletakkan di atas atau sebelum bagian script untuk menampilkan data komentarnya? Iya donk, hal ini dilakukan supaya komentar yang baru saja dikirim nantinya akan langsung tampil di daftar komentar yang telah masuk setelah tombol submit komentarnya diklik. Jika Anda letakkan bagian script untuk menyimpan komentar setelah bagian menampilkan daftar komentar, maka Anda harus merefresh halaman tersebut untuk melihat komentar yang baru saja dikirim, karena proses INSERT dilakukan setelah proses menampilkannya. Seharusnya kan INSERT dulu baru ditampilkan. Paham ya maksud saya? :-)
Nah.. mudah bukan membuatnya? Selamat mencobanya ya. Kalau sukses, silakan mengembangkan sendiri sesuai imajinasi dan kreatifitas Anda. Good luck.

Artikel Terkait


EmoticonEmoticon