[PHP] Guest Book : Part 1 + 5000 HITS!
posted on 01 Sep 2006 14:47 by rije in Codeวันนี้ผมคิดว่าผมน่าจะมีสติพอจะมาบอกเรื่อง PHP นะครับ
หลังจากไม่ได้นอนมาหลายวัน พอได้นอนยาวๆ แล้วมึนเลยครับ
จาก 2 entry ที่แล้ว ผมได้ฝากเว็บ Guest Book ไว้
ตอนนี้ผมรู้แล้วครับว่าทำไมข้อมูลถึงไม่เข้า database
นั่นเป็นเพราะ database เองครับ -[]- ของฟรีก็งี้แหละครับ!
วันนี้ผมขอลงเรื่อง code : Guest Book อย่างเดียวนะครับ
ผมใช้ MySQL ตัวนี้ครับ ซึ่งไว้คราวหน้าสำหรับเรื่องนี้ครับ

-------------------------------------------------------------------
เริ่มแรกผมออกแบบก่อนว่าจะให้รูปแบบ guest book ผมเป็นยังไง
[*************************************************]
<form method="post" action="gb_save.php" id="form" name="gb">
<table width="400" height="335" valign=top>
<tr><td height=10></td></tr>
<tr><td CLASS=textcon align="right">
name :
<INPUT TYPE="TEXT" NAME="name" id="name"
class=textload VALUE="<? echo $name; ?>">
<br>
e-mail :
<INPUT TYPE="TEXT" NAME="email"
class=textload VALUE="<? echo $email; ?>">
<br>
url :
<INPUT TYPE="TEXT" NAME="url"
class=textload VALUE="<? echo $url; ?>">
<br>
subject :
<INPUT TYPE="TEXT" id="title" NAME="title"
class=textload VALUE="<? echo $title; ?>">
<br>
<TEXTAREA NAME="text" id="text" "ROWS="9"
COLS="60" class=textload><? echo $text; ?> </TEXTAREA>
<input type="hidden" name="name" value="<?=$name; ?>">
<input type="hidden" name="email" value="<?=$email; ?>">
<input type="hidden" name="url" value="<?=$url; ?>">
<input type="hidden" name="text" value="<?=$text; ?>">
<input type="hidden" name="title" value="<?=$title; ?>">
<INPUT TYPE="button" onclick="check()"
NAME="submit" VALUE="s u b m i t" class=textcon>
<INPUT TYPE="RESET" NAME="reset"
VALUE="r e s e t" class=textcon>
</form>
[*************************************************]
จากโค้ด ผมสร้างตารางอยู่ใน <form>...</form>
ผมตั้งชื่อให้ form ว่า gb เพื่อใช้เรียก function มาเช็ค
ส่วนที่เป็นโค้ดด้านใน form คือส่วนที่ให้กรอกรายละเอียด
name , e-mail , url , subject และกล่องข้อความ (textarea)
ใน input ใส่โค้ด VALUE="<? echo $name; ?>"
ใน่ส่วนนี้ไม่จำเป็นต้องใส่ก็ได้ครับ อันนี้เป็นโค้ดตัวเก่า
ที่ผมทำไว้สำหรับ back กลับมาแก้ข้อความเดิมได้นะครับ
พวก input , textarea คงจะไม่งงกันนะครับ ใส่ส่วนของ
input type="button" เมื่อคลิกจะไปทำการ check
ว่าข้อมูลที่กรอกนั้นมีส่วนไหนจำเป็นต้องกรอกแต่
ไม่ได้กรอกบ้าง จะขึ้นหน้าต่างขึ้นมาเตือนครับ
ใส่ไว้ระหว่าง <head>...</head>
[*************************************************]<script language="javascript">
function check(){
if(document.gb.name.value.length==0){
alert("NAME BLANK IT IS EMPTY");
}
if(document.gb.text.value.length==0){
alert("MESSAGE BLANK IT IS EMPTY");
}
if(document.gb.title.value.length==0){
alert("SUBJECT BLANK IT IS EMPTY");
}
if(document.gb.name.value.length!=0 &&
document.gb.text.value.length!=0 &&
document.gb.title.value.length!=0){
document.gb.submit();
}//end last if
}//END FUNCTION
</script>
[*************************************************]
name ของ form ที่ชื่อ gb ไว้สำหรับเรียก function
ด้านบนนี้ครับ ซึ่งจะเช็คว่า ใส่ name , subject
และข้อความรึเปล่า หากไม่จะขึ้น alert ขึ้นมา ส่วน
document.gb.text.value.length!=0 &&
document.gb.title.value.length!=0){
document.gb.submit();
}
จะเช็คว่าถ้าหากว่า name , subject และข้อความ
ไม่ว่าง (มีข้อความเขียน) จะ submit ไป gb_save.php
ซึ่งเพจของ gb_save.php จะว่ากันอีกทีใน entry หน้าครับ
ใน guest book ผมจะให้แสดงข้อความขึ้นมาด้านล่างเลย
[*************************************************]
<?
include("connect.php");
$sql="select * from gb";
$query=mysql_query($sql);
if(!$query){
echo "sql command error";
exit();
}
$row=mysql_num_rows($query);
$i=1;
while($i<=$row){
$data=mysql_fetch_array($query);
$title=$data['title'];
$name=$data['name'];
$email=$data['email'];
$url=$data['url'];
$text=$data['text'];
?>
<table width=370 align=right class=textcon>
<tr><td>
<? echo $title;?>
</td></tr>
<tr><td bgcolor=#696969 class=textw>
<? echo $text;?>
</td></tr>
<tr><td>
<b>Post :</b> <? echo $name;?>
</td></tr>
</table>
<?
$i++;
}
?>
</table>
[*************************************************]
ในที่นี้มี table ซ้อน table ดูตามสีดีๆ นะครับ
ผมให้โค้ด php เป็นสีเขียวออกฟ้าอ่อนๆ นะครับ
ผม include จากเพจ connect.php เข้ามาใช้ (ดูต่อใน entry หน้า)
$sql="select * from gb"; ซึ่งเลือกไฟล์ทั้งหมดในฐานข้อมูล
ซึ่งผมสร้าง table ชื่อ gb ไว้ที่ database ของผม
* หมายถึงไฟล์ทั้งหมด และผมสร้างตัวแปล query
สำหรับเช็คว่าเชื่อมต่อ sql ได้หรือไม่ และใช้ตัวแปล$row
เพื่อจะสร้างตารางแสดงข้อมูลจากฐานข้อมูลออกมา
จากนั้นผมสร้าง <table width=370 align=right class=textcon>
เพื่อใช้โชว์ข้อความที่ถูงส่งเข้าฐานข้อมูลไปครับ
สำหรับเพจนี้ผมเซฟโดยใช้ชื่อว่า inguest.php
ดูได้จากลิงค์ไป guest book ที่ 2 entry ที่แล้ว
ถ้าหากมีปัญหาเกิดขึ้นที่ inguest.php ของผมแจ้งให้ทราบ
ด้วยจะดีมากเลยครับ เหอๆ บางทีผมก็ไม่มีเวลาเช็ค
อีกอย่างผมใช้ firefox เปิด แล้วมันจะไม่เหมือนกับ IE
ไว้ entry หน้าจะมาพูดถึงการเชื่อมต่อเข้าฐานข้อมูล
และเกี่ยวกับ My SQL ที่เหลือครับ^[]^/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ผมลืม counter ตัวเองไป T[]T ตอนนี้มัน 5000+ แล้วครับ!!
ดีจาย~~~~~~~ ขอบคุณที่เข้ามาเยี่ยมชมบล็อคผมนะครับ















คือเพิ่งสังเกตว่าเขียนไป 110 entry แล้ว
เลขสวยจริงๆ รอ entry หน้าครับจะได้เป็น 111 เอิ๊กๆ
อยากทำให้กลายเป็น entry ที่พิเศษจังครับ
อาจจะมีอะไรให้อ่านก่อนเรื่อง MySQL เอา MySQL ไว้ด้านล่างไรเงี้ย เหอๆ
วันนี้วันที่ 01 เบอร์มือถือมีเลข 8 เพิ่มเข้ามาแล้วนะครับ! ^[]^/
#1 By r i j e on 2006-09-01 14:54