การเขียน Search engine อย่างง่าย
เว็บเพจสำรอง (Backup Webpages) : http://www.thaiall.com/asp/aspsrch.htm | http://www.thaiabc.com/asp/aspsrch.htm
ปรับปรุง : 2552-04-21 (แก้ไข search.mdb)
[ การเขียน Search engine อย่างง่าย]
Download แฟ้ม search.mdb ไปทำ search engine ส่วนตัวได้ แฟ้มนี้มีมากกว่า 2,000 ระเบียน
การเพิ่ม ลบ แก้ไขในแฟ้มนี้ ทำได้ แต่ไม่มีผลถาวร เพราะผมจะนำข้อมูลมาทับเป็นระยะ หากจะเพิ่ม ให้ไปที่ แนะนำเว็บใหม่
(ที่ผมมีแหล่ง download ให้ 2 ที่เพราะบางครั้ง load จาก webhostme ได้เพียงครึ่งเดียวก็หลุด)

  1. ข้อควรทราบ
  2. การเขียน html ส่ง keyword
  3. โปรแกรม asp ที่ทำหน้าที่ค้นหา และแสดงผล
  4. การเขียน html เพิ่ม ลบ แก้ไข ข้อมูล
  5. โปรแกรม asp ที่ทำหน้าที่ เพิ่ม ลบ แก้ไข
  6. แบบฝึกหัด
ข้อควรทราบ
  1. โปรแกรมนี้ไม่ได้เน้นอะไรมากมาย เพราะเป็นเรื่องง่าย ไม่ซับซ้อน หากท่านศึกษาเรื่องการเพิ่ม ลบ แก้ไข ในบทก่อนหน้านี้มาจนเข้าใจแล้ว ซึ่งแฟ้มที่ใช้มี 5 แฟ้มคือ aspsrch1.htm เป็นฟอร์มส่งค่า aspsrch1.asp เป็นโปรแกรมรับค่าไปค้นหาและนำมาแสดง aspsrch2.htm เป็นform ส่งคำสั่งเพิ่ม หรือลบหรือแก้ไข ส่วน aspsrch2.asp จะนำคำสั่งเพิ่ม ลบ แก้ไข มาปฏิบัติอีกทีหนึ่ง และ /cgi-bin/search.mdb หรือ search.mdb เป็นแฟ้มข้อมูลที่ท่าน download ไปได้มีระเบียนเตรียมให้สืบค้น 2000 เว็บ แล้วท่านก็นำไปเพิ่มระเบียนจนพอใจได้
  2. ในบทนี้คงเน้นวิธีการเขียน html โดยใช้คำสั่ง like เพื่อเลือกข้อมูลเป็นหลัก เพราะการสืบค้นก็คือการอ่านข้อมูลมาแสดง ส่วนลูกเล่นก็เป็นส่วนปลีกย่อย ที่ท่านสามารถศึกษาเพิ่มเติม และลองผิดลองถูกได้
  3. สิ่งสำคัญอีกประการหนึ่งก็คือ บทนี้มีแฟ้มให้ download (search.mdb หรือ search.mdb) ไปปรับปรุงได้ ถึงแม้จะเขียน search engine ดีอย่างไรก็ตาม แต่ถ้าฐานข้อมูลไม่มีอะไร ก็เปล่าประโยชน์ ผมทำข้อมูลไว้ 2000 ระเบียน ท่านสามารถนำไปรวมกับฐานข้อมูลที่ท่านมีอยู่ หรือเพิ่มใหม่จนพอใจได้
  4. สำหรับการเพิ่ม ลบ แก้ไข ขอให้ไปดูจากบทเรียน การทำระบบสมาชิกธรรมดา และ ที่มีระบบถามย้ำ เพราะเขียนแยกเป็นเรื่อง ๆ ให้เข้าใจแล้ว และบทนี้ต้องการแสดงการรวม เพิ่ม ลบ แก้ไขในเว็บหน้าเดียว และโปรแกรมประมวลผลตัวเดียว เพื่อความกระชับ และต้องการให้นำไปใช้ทำ Search engine ส่วนตัวของท่านได้ จึงรวมโปรแกรมเพิ่ม ลบ แก้ไขเป็นโปรแกรมเดียว
  5. เรื่องเกี่ยวกับ search engine ที่ละเอียดขึ้น จะเขียนเพิ่มในบทต่อไป ..

    โครงสร้างของแฟ้ม search.mdb เป็นดังนี้
  1. รหัสเว็บ ( ID ) มีขนาดเป็น AutoNumber ซึ่งเพิ่มได้อัตโนมัติ และไม่ซ้ำกันแน่นอน
  2. ชื่อเว็บ ( NAME ) เตรียมไว้ 50 ตัวอักษร
  3. ที่อยู่เว็บ ( ADDRESS ) เตรียมไว้ 100 ตัวอักษร
  4. คำอธิบายเว็บ ( DESCRIB ) เตรียมไว้ 120 ตัวอักษร
  5. กลุ่มเว็บ ( GROUP ) เตรียมไว้ 20 ตัวอักษร - จะกล่าวถึงในบทต่อ ๆ ไป

การเขียน html ส่ง keyword
โปรแกรมนี้จะสร้าง form สำหรับส่งค่า 1 ค่าคือ keyword ไปให้โปรแกรม aspsrch1.asp
จากนั้นเป็นหน้าที่ของ aspsrch1.asp ที่ต้องสืบค้นใน /cgi-bin/search.mdb ต่อไป
ตัวอย่างฟอร์ม /aspsrch1.htm Source code ของ /aspsrch1.htm
สืบค้นเว็บตามชื่อหรือคำอธิบาย
คำที่ต้องการค้นหา :

Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>สืบค้นเว็บ ตามชื่อหรือคำอธิบาย</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
สืบค้นเว็บตามชื่อหรือคำอธิบาย<br>
<form action=http://thaiall.webhostme.com/aspsrch1.asp method=post>
คำที่ต้องการค้นหา : <input type="text" name=keyword size="2"0> <br>
<input type=submit value="Search on keyword">
<input type=reset value=Reset>
</form>
</body></html>

โปรแกรม asp ที่ทำหน้าที่ค้นหา และแสดงผล
โปรแกรมนี้จะใช้ SQL เลือกข้อมูลจาก search.mdb ในตาราง webdat
โดยเลือกที่มีค่าจากตัวแปล keyword อยู่เขตข้อมูล name หรือ describ
Source code ของ /aspsrch1.asp
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/search.mdb")
Set rec = Server.CreateObject("ADODB.Recordset")
sql = "select * from webdat "
sql = sql & "where (webdat.name like '%" & request.form("keyword") & "%') or "
sql = sql & "(webdat.describ like '%" & request.form("keyword") & "%');"
rec.Open sql, thaialldbaccess97
%>
<html><head><title>ผลลัพธ์การสืบค้น (Search engine)</title></head>
<body bgcolor="#ffffdd"><font face="microsoft sans serif">
<b>ผลลัพธ์การสืบค้น (Search engine)</b><br>
สืบค้นจาก ชื่อเว็บ หรือ คำอธิบายเว็บ<hr>
<ul>
<%
if Not rec.eof then rec.MoveFirst
do while Not rec.eof
   response.write( "<b>ชื่อเว็บ</b> : " & rec("name") & " - ")          
   response.write( "<b>ที่อยู่เว็บ</b> : <a href=http://" )
   response.write( rec("address") & ">" & "http://" & rec("address") & "</a> - " )   
   response.write( "<b>รหัสเว็บ</b> : " & rec("id") &"<br>")     
   response.write( "<b>คำอธิบายเว็บ</b> : " & rec("describ") &"<hr>")
   rec.MoveNext
loop
%>
</ul>
</body></html>
Click here to open this source code in new windows

การเขียน html เพิ่ม ลบ แก้ไข ข้อมูล
โปรแกรมชุดนี้ใช้หลักการจากบทเรียน การทำระบบสมาชิกธรรมดา
แต่เพิ่มส่วนของตัวแปรสำหรับเลือกการประมวลผล คือ typeupdate
หากท่านจะนำไปใช้ก็สามารถแยกส่วนทำงานออกจากกันได้ แต่โปแกรมก็ยังสามารถใช้โปรแกรมเดียวได้อยู่
ตัวอย่างฟอร์ม /aspsrch2.htm Source code ของ /aspsrch2.htm
For เพิ่ม ลบ และแก้ไข
เพิ่มเว็บใหม่
ชื่อเว็บ :
ที่อยู่เว็บ : http://
คำอธิบายเว็บ :


ลบเว็บ
รหัสเว็บ : (ต้องมีอยู่ในฐานข้อมูลแล้ว)

แก้ไขเว็บ
รหัสเว็บ : (ต้องมีอยู่ในฐานข้อมูลแล้ว)
ชื่อเว็บ :
ที่อยู่เว็บ : http://
คำอธิบายเว็บ :


Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>For add del edit</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
<b>For เพิ่ม ลบ และแก้ไข</b><hr>
เพิ่มเว็บใหม่<br>
<form action=http://thaiall.webhostme.com/aspsrch2.asp method=post>
ชื่อเว็บ : <input type="text" name=name size=40><br>
ที่อยู่เว็บ : http://<input type="text" name=address size=40><br>
คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br>
<input type=hidden name=typeupdate value="add">
<input type=submit value="Add web"><input type=reset value=Reset>
</form><hr>
ลบเว็บ<br>
<form action=http://thaiall.webhostme.com/aspsrch2.asp method=post>
รหัสเว็บ : <input type="text" name=delid size="2"0> (ต้องมีอยู่ในฐานข้อมูลแล้ว)<br>
<input type=hidden name=typeupdate value="delete">
<input type=submit value="Delete web"><input type=reset value=Reset>
</form><hr>
แก้ไขเว็บ<br>
<form action=http://thaiall.webhostme.com/aspsrch2.asp method=post>
รหัสเว็บ : <input type="text" name=id size="2"0> (ต้องมีอยู่ในฐานข้อมูลแล้ว)<br>
ชื่อเว็บ : <input type="text" name=name size=40><br>
ที่อยู่เว็บ : http://<input type="text" name=address size=40><br>
คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br>
<input type=hidden name=typeupdate value="edit">
<input type=submit value="Edit web"><input type=reset value=Reset>
</form>
</body></html>

โปรแกรม asp ที่ทำหน้าที่ เพิ่ม ลบ แก้ไข
โปรแกรมชุดนี้ใช้หลักการจากบทเรียน การทำระบบสมาชิกธรรมดา
แต่เพิ่มส่วนของตัวแปรสำหรับเลือกการประมวลผล คือ typeupdate
Source code ของ /aspsrch2.asp
<%
set connNews = server.createobject("ADODB.Connection")
connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/search.mdb")
if request.form("typeupdate") = "add" then
   sql = "INSERT into webdat ( name, address, describ ) SELECT "
   sql = sql & " '" & request.form("name") & "' as name, "    
   sql = sql & " '" & request.form("address") & "' as address, " 
   sql = sql & " '" & request.form("describ") & "' as describ; "
end if   
'
if request.form("typeupdate") = "delete" then
   sql = "DELETE * FROM webdat WHERE (webdat.id= " & request.form("delid") & ");"
end if
'
if request.form("typeupdate") = "edit" then
   sql = "UPDATE webdat set "
   sql = sql & " webdat.name = '" & request.form("name") & "', " 
   sql = sql & " webdat.address = '" & request.form("address") & "', " 
   sql = sql & " webdat.describ = '" & request.form("describ") & "' "
   sql = sql & " Where webdat.id = " &  request.form("id") & " ;"   
end if
'
set rsArticles = connNews.Execute(sql)
connNews.close
set connNews = nothing
%>
<body>
<%=request.form("typeupdate")%> complete
</body>
Click here to open this source code in new windows

แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. ให้ copy แฟ้ม /cgi-bin/search.mdb ไปใช้เป็นฐานข้อมูลของท่าน และทำตามตัวอย่างนี้
  2. ปรับปรุงการแสดงผลของตัวอย่างนี้ ให้ดีขึ้น เช่นเพิ่มสี ปรับคำอธิบาย เป็นต้น
  3. ให้สร้างส่วนเพิ่ม ลบ แก้ไข แฟ้ม search.mdb โดยดูตามบทเรียนนี้
  4. ให้สร้างส่วนเพิ่ม ลบ แก้ไข แฟ้ม search.mdb โดยแยกการทำงานออกเป็น html คนละแฟ้ม

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223