Tutorial Membuat Blog dengan PHP dan MySQL

Sebelum kita memulai membahas tentang tahapan membuat blog dengan PHP dan MySQL terlebih dahulu kita akan berkenalan dengan blog. Blog adalah bentuk aplikasi web yang menyerupai tulisan-tulisan (yang dimuat sebagai posting) pada sebuah halaman web umum. Tulisan-tulisan ini seringkali dimuat dalam urut terbalik (isi terbaru dahulu baru kemudian diikuti isi yang lebih lama), meskipun tidak selamanya demikian (Sumber Wikipedia).

Pada tutorial ini kita akan membahas tentang pembuatan database, table dan beberapa file untuk menunjang berdirinya blog. Blog yang dihasilkan oleh tutorial ini berupa 2 halaman yaitu daftar post (tulisan) dan detail tulisan. Tutorial ini dibuat juga dengan cara sederhana dengan tujuan agar anda memahami alur dari pembuatan blog.

Struktur Project

untuk memulai tutorial ini mari kita siapkan struktur dari project ini, yaitu:

- index.php
- lib/config.php
- lib/function.php

index.php merupakan file yang akan diakses oleh user, config.php merupakan file yang akan menampung konfigurasi dari mysql kita, function.php merupakan file yang menampung fungsi untuk get all post dan get post detail.

Membuat Database

Sebelum memulai mengedit file yang telah kita siapkan berikutnya mari kita buat dulu database di MySQL dengan nama “blog” kemudian buatlah table “posts” seperti dibawah ini.

CREATE TABLE `posts` (
  `post_id` int(4) NOT NULL AUTO_INCREMENT,
  `title` varchar(250) NOT NULL,
  `date` date NOT NULL,
  `content` text NOT NULL,
  `deleted` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`post_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

setelah itu isilah table posts tadi dengan data dummy tulisan kita.

INSERT INTO `posts` VALUES(1, 'Postingan Pertama', '2014-10-28', 'ini adalah tulisan pertama untuk demo blogpost\n\nFar far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.\n\nIt is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. ', 0);
INSERT INTO `posts` VALUES(2, 'Tulisan Kedua', '2014-10-29', 'ini adalah tulisan kedua untuk demo blogpost\n\nFar far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.\n\nIt is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. ', 0);

Sebelumnya kita telah membuat database dengan nama “blog” kemudian membuat tabel dengan nama “posts” dan mengisi ke tabel tersebut dengan data dummy.

Coding Dimulai

Saat yang seru kita mulai, untuk tahap pertama mari kita edit file index.php yang telah kita buat tadi. Berikut isi dari file index.php

<?php
define(LIB_DIR, './lib/');

require_once(LIB_DIR . 'config.php');
require_once(LIB_DIR . 'function.php');

$type = $_GET['type'];

switch ($type) {
	case 'view':
		$post_id = $_GET['id'];

		$post = get_post_by_id($post_id);
		while ($row = mysql_fetch_object($post))
		{

			// render blog list disini
			$result = '
			<div>
				<h1>'.$row->title.'</h1>
				<p>'.nl2br($row->content).'</p>
				<p><a href=".">Kembali</a></p>
			</div>
			';
			echo $result;
  		}
		break;
	
	default:
		$posts = get_all_post();

		while ($row = mysql_fetch_object($posts))
		{

			// render blog list disini
			$result = '
			<div>
				<a href="?type=view&id='.$row->post_id.'"><h1>'.$row->title.'</h1></a>
				<p>'.substr($row->content, 0, 100).'</p>
			</div>
			';
			echo $result;
  		}
		break;
}
?>

Kemudian lanjutkan dengan mengedit file “config.php” yang ada di dalam folder lib

<?php
$db_host			= 'localhost';
$db_user 			= 'root';
$db_pass 			= 'root';
$db_name 			= 'blog';

mysql_connect($db_host, $db_user, $db_pass) or die ("Error connecting to database server.<br>reason:".mysql_error());
mysql_select_db($db_name) or die ("Database \"" . $db_name . "\" not found!");
?>

Pada file config.php pastikan ke empat parameter yang ada di baris 1-4 di isi dengan yang sama dengan konfigurasi MySQL anda. db_host untuk hostname database, db_user untuk database user, db_pass merupakan password untuk password si db_user mengakses ke database, db_name merupakan nama database yang telah kita buat sebelumnya.

Lalu terakhir kita edit file “function.php” yang ada didalam folder lib juga.

<?php
function get_all_post(){
	$sql = "select * from posts order by post_id desc";
	$query = mysql_query($sql) or die ("Error found<br>reason: ".mysql_error());

	return($query);
}

function get_post_by_id($post_id){
	$sql = "select * from posts where post_id='".$post_id."'";
	$query = mysql_query($sql) or die ("Error found<br>reason: ".mysql_error());

	return($query);
}
?>

Pada file function.php ini hanya terdapat 2 buah fungsi yaitu get_all_post() untuk mengambil semua tulisan yang ada di table posts yang akan di order by post_id secara descending. Fungsi yang kedua get_post_by_id() untuk mengambil data detail tulisan di table posts berdasarkan post_id tertentu.

Jika tidak ada kesalahan maka kita akan menemukan seperti yang ada pada gambar dibawah ini.

blog

Untuk mendownload source code dari tutorial ini silahkan melalui link dibawah ini

Download Source Code Membuat Blog dengan PHP dan MySQL