สวัสดีครับ บทความนี้เป็นของวันอาทิตย์ที่ 3 เมษายน 48 เรื่องหลักการสร้างเว็บบอร์ดแบบพื้นฐาน ที่วันนี้ผมนำเรื่องนี้มาเขียนให้อ่านกันนั้น เพราะว่าผมเข้าไปดู keyword ที่ท่านผู้ชมเข้ามาเยี่ยมชมเว็บผมใช้คำว่า “Webboard” ค้นหาในระบบฐานข้อมูลของเรา จึงเป็นความคิดให้เขียนบทความนี้ขึ้นครับ
เดี๋ยวนี้เว็บบอร์ดเป็นสิ่งที่เราจำเป็นต้องมีควบคู่ไปกับเว็บไซต์ของเรา เพราะว่า จะสร้างให้เกิด Community ในเว็บไซต์ได้อย่างดีมาก ทำให้เกิดศูนย์รวมพูดคุยแลกเปลี่ยนความคิดเห็นกันแบบออนไลน์
แต่มีหลายเว็บไซต์ที่อยากจะมีเว็บบอร์ดเป็นของตัวเอง แต่เขียนกันไม่เป็น ก็อาจจะเอา open source เว็บบอร์ดมาติดตั้งใช้งานกันแบบสำเร็จรูป หรือจะไปใช้บริการระบบฟรีเว็บบอร์ดของเว็บไซต์ต่างๆที่มีให้บริการกันอยู่อย่างมากมายในขณะนี้ ซึ่งเป็นสิ่งที่ง่าย และไม่เสียเวลามากมาย
บทความในวันนี้ผมก็จะแค่มาแนะนำวิธีการเบื้องต้นคราวๆ ในการสร้างเว็บบอร์ดให้ท่านทราบกัน เพื่อเป็นแนวทางในการพัฒนาเขียนโปรแกรมต่อยอดขึ้นไปเรื่อยๆ
มาเริ่มสร้างกันเลยครับ…..
ก่อนอื่นจะต้องทำการออกแบบระบบและออกแบบฐานข้อมูลของคุณก่อนว่าจะให้มีโครงสร้างการทำงานอย่างไร โดยตัวอย่างที่ผมจะอธิบายนี้โครงสร้างของเว็บบอร์ดของผมก็คือ
1.ไฟล์ main_webboard.php เป็นไฟล์หน้าหลักสำหรับโชว์กระทู้ทั้งหมดของเว็บบอร์ด
2.ไฟล์ new_topic.php เป็นไฟล์หน้าฟอร์มกรอกข้อมูลสำหรับตั้งกระทู้ของเว็บบอร์ด
3.ไฟล์ add_question.php เป็นไฟล์บันทึกข้อมูลการตั้งกระทู้ลงฐานข้อมูล
4.ไฟล์ topic_details.php เป็นไฟล์โชว์รายละเอียดของคำถาม เมื่อคลิ๊กจากหน้าหลักของเว็บบอร์ดเพื่อต้องการอ่านกระทู้นั้นๆ และโชว์ฟอร์มสำหรับใช้ตอบคำถามนั้นๆ รวมถึงการโชว์คำตอบเมื่อมีผู้ตอบคำถามนั้นๆ ด้วย
5.ไฟล์ add_answer.php เป็นไฟล์สำหรับบันทึกข้อมูลของคำตอบลงฐานข้อมูล
6.ไฟล์ config.inc.php เป็นไฟล์สำหรับกำหนดตั้งค่าของผู้ใช้งานฐานข้อมูล webboard
ต่อมาคือ โครงสร้างของฐานข้อมูล โดยตัวอย่างนี้ในฐานข้อมูลของ webboard นั้นจะมีอยู่ 2 ตารางคือ ตาราง question เอาไว้เก็บข้อมูลของคำถาม และ ตาราง answer เอาไว้เก็บคำตอบของคำถามนั้นๆ
โครงสร้างของตาราง Question คือ
|
ชื่อฟิลด์
|
ชนิด
|
ความยาว/เซต
|
Auto Key
|
Primary Key
|
|
qid
|
int
|
4
|
เป็น auto increment | เป็น primary key |
|
qtopic
|
varchar
|
20
|
||
|
qmessage
|
longtext
|
|||
|
qname
|
varchar
|
20
|
||
|
qdate
|
varchar
|
20
|
||
|
qreply
|
int
|
4
|
||
รายละเอียดเพิ่มเติม
qid เป็นลำดับของกระทู้คำถาม
qtopic เก็บหัวข้อของคำถาม
qmessage เก็บรายละเอียดของคำถาม
qname เก็บชื่อของผู้ตั้งคำถาม
qdate เก็บวันที่ ที่ตั้งคำถาม
qreply เก็บจำนวนคำตอบของคำถามนั้นๆ
คำสั่ง SQL ของตาราง question ด้านล่างนี้ สามารถเอาไปวางใน phpMyadmin เพื่อให้มันสร้างตารางให้อัติโนมัติได้เลยครับ
CREATE TABLE `question` ( `qid` int(4) NOT NULL auto_increment, `qtopic` varchar(20) NOT NULL default ”, `qmessage` longtext NOT NULL, `qname` varchar(20) NOT NULL default ”, `qdate` varchar(20) NOT NULL default ”, `qreply` int(4) NOT NULL default ‘0′, PRIMARY KEY (`qid`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; |
โครงสร้างของตาราง Answer คือ
|
ชื่อฟิลด์
|
ชนิด
|
ความยาว/เซต
|
Auto Key
|
Primary Key
|
|
aid
|
int
|
4
|
เป็น auto increment | เป็น primary key |
|
qid
|
int
|
4
|
||
|
aname
|
varchar
|
20
|
||
|
amessage
|
longtext
|
|||
|
adate
|
varchar
|
20
|
||
รายละเอียด
aid เป็นลำดับของคำตอบในตาราง answer
qid เก็บหมายเลขคำถามของคำตอบนั้นๆ
aname เก็บชื่อของผู้ตอบคำถาม
amessage เก็บรายละเอียดของคำตอบ
adate เก็บวันที่ ที่ตอบคำถาม
คำสั่ง SQL ของตาราง answer ข้างล่างนี้ สามารถเอาไปวางใน phpMyadmin เพื่อให้มันสร้างตารางให้อัติโนมัติได้เลยครับ
CREATE TABLE `answer` ( `aid` int(4) NOT NULL auto_increment, `qid` int(4) NOT NULL default ‘0′, `aname` varchar(20) NOT NULL default ”, `amessage` longtext NOT NULL, `adate` varchar(20) NOT NULL default ”, PRIMARY KEY (`aid`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; |
เริ่มต้นให้คุณเข้าไปสร้างฐานข้อมูลก่อน ดังตัวอย่างข้างล่างนี้ผมใช้ phpMyadmin สร้างฐานข้อมูลชื่อ webboard และกดปุ่ม “สร้าง”

หลังจากนั้นจะเข้ามายังหน้าการสร้างตาราง ผมจะเริ่มสร้างตาราง question ก่อนนะครับ กำหนดให้มีฟิลด์ข้อมูลจำนวน 6 ฟิลด์ และกดปุ่ม “ลงมือ”

กำหนดคุณสมบัติและประเภทของข้อมูลในตาราง question ที่ผมได้กล่าวไปข้างต้นนั้น ดังรูปข้างล่างนี้ จากนั้นกดปุ่ม “บันทึก”

ระบบจะรายงานว่าได้ทำการสร้างและกำหนดคุณสมบัติของตาราง question เรียบร้อยแล้ว

ตารางต่อมาที่จะสร้างคือตาราง answer กำหนดให้มีจำนวนฟิลด์ของข้อมูลเป็น 5 ฟิลด์ และกดปุ่ม “ลงมือ”

กำหนดคุณสมบัติและประเภทของข้อมูลในตาราง answer ที่ผมได้กล่าวไปข้างต้นนั้น ดังรูปข้างล่างนี้ จากนั้นกดปุ่ม “บันทึก”

ระบบจะรายงานว่าได้ทำการสร้างและกำหนดคุณสมบัติของตาราง answer เรียบร้อยแล้ว

เมื่อสร้างตาราง question และ answer ในฐานข้อมูล webboard เสร็จ ก็จะเป็นดังรูปข้างล่างนี้ครับ






June 8th, 2009 at 2:48 pm
พี่แอดมินค่ะรบกวนถามหน่อยนะค่ะ คือว่านู๋อยากให้เค้าสมัครสมาชิกก่อนนะค่ะ ถ้าเค้ายังไม่สมัครจะำไม่สมารถโพ้สได้นะค่ะ จะต้องทำยังไงหรอค่ะ ช่วยหน่อยได้ใหมค่ะ ขอบคุณล่วงหน้าค่ะ
June 8th, 2009 at 3:01 pm
มีหลายวิธี ใช้ระบบ session ของ php ช่วย
หรือใช้ if หรือ case ช่วย แต่แนะนำปกติจะใช้ session กันครับ
ไกด์ไลประมาณนี้
If(member==”0″){
กรุณาเข้าระบบก่อน
}else{
สามารถตั้งกระทู้ได้
}