[PHP] Form Komentar Sederhana

Bisa dibilang ini lanjutan dari tips sebelumnya. “Bikin yang simple dulu”, ibarat orang bilang “gak akan ada asap kalo gak ada api, gak ada api kalo korek nya gak dinyalain” ya to. Nah sekarang mari kita nyalakan api PHP kita. hehehehe

Saya asumsikan database sudah anda buat dengan isi seperti berikut :

Betelah database sudah dibuat. Buat file dengan nama “coba.php” atau terserah anda mau pakai nama apa. Yang perlu diingat adalah, tiap kali penulisan kode php harus diawali dan diakhiri dengan :

<?php	//awal penulisan

		//code kamu

?>		//akhir penulisan

Lanjut ke koneksi ke database :

$host	= "localhost";
$user	= "root";			//username mysql mu
$pass	= "root";			//password mysql mu
$name	= "jajal";			//nama database muy

mysql_connect($host,$user,$pass);	//nyambungin ke mysql database
mysql_select_db($name); 			//milih database

Q : Tanya gan, mysql_connect sama mysql_select_db itu maksud nya gimana?
A : Lha itu buat bisa konek ke database gan. untuk lebih jelasnya langsung ke sini dan sini aja.

lanjot, buat form dulu :

<form action="" method="post" >

	<label for="judul">Judul</label>
	<input type="text" name="judul" >

	<label for="komentar">Komentar</label>
	<textarea name="komentar" ></textarea>

	<input type="submit" name="kirim" value="kirim">

</form>

Nah sampe sini coba di save dulu file nya. Trus coba dibuka di http://localhost/coba.php

Q : Kok blum bisa kerja gan?
A : ya iya lah, baru segitu. Sabar napa? maksudnya dicoba itu, coba bisa tampil apa ndak.

Lanjod, biar si form ini bisa nyimpen

//kalo tombol kirim dipencet
if(isset($_POST['kirim'])) {

	// Masukin data ke mysql
	$sql	= "INSERT INTO `komen` (`judul`, `komen`) VALUES ('".$_POST['judul']."','".$_POST['komentar']."')";

	//Njalanin $sql nya
	$query	= mysql_query($sql);

	//kalo berhasil masukin
	if($query) {

		//Output
		echo "data tersimpan";

		//refresh halaman
		header('Location: ./coba.php');

	//kalo berhasil masukin
	} else {

		//keluarnya beginian
		echo "ada kesalahan penyimpanan";
	}

}

Q : mysql_query tu buat apaan gan?
A : Itu buat njalanin perintah sql yang ada di variable $sql. biar jelas kesini aja.
Q : variable apaan yak? :|
A : hadooooooooh, cekidot dimari gan!

Simpen dulu ntu file dan langsung dicoba.

TIPS : Tiap kali nambahin ato ngrubah ato nghapus, usahain slalu ngrefresh di browser. biar keliatan hasil nya langsung.

lanjoed.

Q : Bentar gan, jangan lanjot dulu. Barusan qu coba status nya udha kesimpen tapi kok gak kluar hasil e tu gimana?
A : Mangkanya sabar dulu gan, ini lho :cry:

buat nampilin data dari database

// milih semua data dari tabel komen urut 'id' > kebalik
$sql	= "SELECT * FROM `komen` ORDER BY `id` DESC";

//njalanin $sql nya
$query	= mysql_query($sql);

//output ke html nya
echo '<ol>';

// jika perintah $query berhasil
if($query)

	//ngedapetin objek dari tiap perintah $query dan dimasukin ke variabel $hasil
	while($hasil	= mysql_fetch_object($query)) {

		//output dari $hasil
		echo '<li><a href="?lihat='.$hasil->id.'">'.$hasil->judul.'</a><br>'.$hasil->komen.'</li>';

	}
else : //jika $query gagal

	echo '<li>Belum ada komentar</li>';

endif;

echo '</ol>';

kalo yang diatas udah selesai semua tambahin penghias dikit lah biar rapi. hehe

<style rel="stylesheet">
form, ol {
	width: 300px;
	margin:20px auto;
}
form{
	padding: 10px 10px;
	border:#DDD;
	background: whiteSmoke;
	display :block;
}
ol {
	border-top: 1px solid #BFBFBF;
	padding: 0;
	list-style:none;
}
li {
	padding: 10px 0;
	border-bottom: 1px solid #BFBFBF;
}
label, input[type="text"], textarea {
	display:block;
	width:280px;
}

</style>

Q : Gan, caranya biar tiap komen bisa di klik, trus yang tampil cuman komen yang diklik aja gimana gan?
A : maksudnya biar kaya posting gitu?
Q : ya gan :D

lanjot

by request

nah kalo buat yang kaya gitu, cukup edit dikit di bagian sini
ato ganti pake :

$sql	= "SELECT * FROM `komen` ORDER BY `id` DESC";
$query	= mysql_query($sql);

echo '<ol>';

//jika query berhasil dan tidak ada permintaak get lihat
if($query && !isset($_GET['lihat'])) :

	while($hasil	= mysql_fetch_object($query)) {

		//di hasil list tambahin anchor/link aja dibagian $hasil->judul
		echo '<li><a href="?lihat='.$hasil->id.'">'.$hasil->judul.'</a><br>'.$hasil->komen.'</li>';

	}

//jika query berhasil dan ada permintaak get lihat
elseif(isset($query) && isset($_GET['lihat'])) :

	//pilih komen yang id nya sama kaya yang di $_GET['lihat']
	$sql	= "SELECT * FROM `komen` WHERE `id` = ".$_GET['lihat']."";
	$query	= mysql_query($sql);
	$hasil	= mysql_fetch_object($query);

	//output
	echo '
		<li><a href="./coba.php	">kembali</a></li>
		<li>'.$hasil->judul.'<br>'.$hasil->komen.'</li>';

else :

	echo '<li>Belum ada komentar</li>';

endif;

echo '</ol>';

Berikut kode lengkapnya :

<?php

$host	= "localhost";
$user	= "root";
$pass	= "root";
$name	= "jajal";

mysql_connect($host,$user,$pass);
mysql_select_db($name);

if(isset($_POST['kirim'])) {

	$sql	= "INSERT INTO `komen` (`judul`, `komen`) VALUES ('".$_POST['judul']."','".$_POST['komentar']."')"; // insert nang mysql
	$query	= mysql_query($sql);

	if($query) {
		echo "data tersimpan";
		header('Location: ./coba.php');
	} else {
		echo "ada kesalahan penyimpanan";
	}

}

?>
<style rel="stylesheet">
form, ol {
	width: 300px;
	margin:20px auto;
}
form{
	padding: 10px 10px;
	border:#DDD;
	background: whiteSmoke;
	display :block;
}
ol {
	border-top: 1px solid #BFBFBF;
	padding: 0;
	list-style:none;
}
li {
	padding: 10px 0;
	border-bottom: 1px solid #BFBFBF;
}
label, input[type="text"], textarea {
	display:block;
	width:280px;
}

</style>

<form action="" method="post" >

	<label for="judul">Judul</label>
	<input type="text" name="judul" >

	<label for="komentar">Komentar</label>
	<textarea name="komentar" ></textarea>

	<input type="submit" name="kirim" value="kirim">

</form>

<?php

$sql	= "SELECT * FROM `komen` ORDER BY `id` DESC";
$query	= mysql_query($sql);

echo '<ol>';

if($query && !isset($_GET['lihat'])) :

	while($hasil	= mysql_fetch_object($query)) {

		echo '<li><a href="?lihat='.$hasil->id.'">'.$hasil->judul.'</a><br>'.$hasil->komen.'</li>';

	}

elseif(isset($query) && isset($_GET['lihat'])) :

	$sql	= "SELECT * FROM `komen` WHERE `id` = ".$_GET['lihat']."";
	$query	= mysql_query($sql);
	$hasil	= mysql_fetch_object($query);

	echo '
		<li><a href="./coba.php	">kembali</a></li>
		<li>'.$hasil->judul.'<br>'.$hasil->komen.'</li>';

else :

	echo '<li>Belum ada komentar</li>';

endif;

echo '</ol>';
?>

sampai sini, kalo ada masalah/pertanyaan jangan sungkan untuk nulis komen yak?

thanks, smoga bermanfaat :D