Knowledge 4 You.

VDO games radio music thai lyrics lyrics Guitar Chord lyirics


February 12, 2008

Dw-g : การสร้างระบบค้นหา

Filed under: Main — admin @ 3:58 pm

ระบบค้นหาข้อมูล คือเว็บเพจที่ทำหน้าที่ในการเรียกค้นหาข้อมูลจากฐานข้อมูล และนำผลลัพธ์มาแสดงผลที่หน้าจอเว็บเพจ

รูปแสดงไฟล์ที่เกี่ยวข้องกับระบบค้นหาข้อมูล

ระบบค้นหาข้อมูลในส่วนที่จะอธิบายนี้ จะประกอบด้วยไฟล์ 2 ไฟล์

searchadv.php ทำหน้าที่รับค่าคำค้น แล้วส่งไปเป็น URL Parameter ชื่อ keywords ไปให้ไฟล์ resultadv.php
ใช้เปรียบเทียบค้นหาข้อมูลจากตารางในฐานข้อมูล

resultadv.php ทำหน้าแสดงรายละเอียดของพนักงานทีละคน โดยจะรับ URL Parameter ชื่อ keywords ใน
รูปแบบ
$_GET[keywords] จากฟอร์มในไฟล์ searchadv.php

ขั้นตอนการสร้างระบบค้นหาข้อมูลที่ยกมาอธิบายในที่นี้ แบ่งเป็นขั้นตอนดังต่อไปนี้

1. การสร้างฟอร์มสำหรับพิมพ์คำค้น

2. การค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic)

3. การใช้งานระบบค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic)

4. การค้นหาข้อมูลแบบหลายเงื่อนไข (Advanced)

5. การใช้งานระบบค้นหาข้อมูลแบบหลายเงื่อนไข (Advanced)

 

(1) การสร้างฟอร์มสำหรับพิมพ์คำค้น

ขั้นตอนนี้จะเป็นการสร้างฟอร์มสำหรับพิมพ์คำค้น โดยการแทรกฟอร์มและอ็อบเจ็คต์ของฟอร์มชนิด Text Field สำหรับรับค่าคำค้น

ขั้นตอนการสร้างฟอร์มสำหรับพิมพ์คำค้น:

1. เริ่มต้นที่โปรแกรม Dreamweaver MX คลิกเมนู File > New จะปรากฏไดอะล็อก New Document ขึ้นมา ให้คลิกแท็บ General คลิกเลือก Dynamic Page > PHP หลังจากนั้นคลิกปุ่ม Create เมื่อปรากฏเว็บเพจว่างๆ ขึ้นมา ให้บันทึกเป็นไฟล์ searchadv.php

2. เลือกเมนู Modify > Page Properties เมื่อปรากฏไดอะล็อก Page Properties ขึ้นมา ให้กำหนด Properties ของเว็บเพจ ดังรายละเอียดด้านล่างนี้ หลังจากนั้นคลิกปุ่ม OK

ค่าของไดอะล็อก

ค่าที่กำหนด

Title

Search employees

Background Image

images/bkg_search.gif

Encoding

Thai (Windows)

รูปแสดงการกำหนด Page Properties

3. แทรกฟอร์มลงในเว็บเพจ โดยคลิกไปที่เมนู Insert > Form

4. กำหนด Properties ของฟอร์ม โดยเลือกแท็ก <form> จาก Tag Selector หลังจากนั้นคลิกเมนู Window > Properties เมื่อปรากฏไดอะล็อก Properties ขึ้นมา ให้กำหนดค่าดังต่อไปนี้

ค่าของไดอะล็อก

ค่าที่กำหนด

Form name

fmSearch

Action

resultadv.php

Method

GET

ตารางแสดงการกำหนด Property ของฟอร์ม

รูปแสดงการกำหนด Property ของฟอร์ม

5. แทรกตารางลงภายในแท็ก <FORM> โดยคลิกที่เมนู Insert > Table แล้วกำหนดค่าดังนี้

รูปแสดงการกำหนดค่าของไดอะล็อก Table

 

ค่าของไดอะล็อก

ค่าที่กำหนด

Rows

1

Columns

3

Table width

50 percent

Border thickness

1 pixels

Cell padding

3

Cell spacing

1

ตารางแสดงการกำหนดค่าของไดอะล็อก Table


6. คอลัมน์ที่ 1 ของตาราง และให้แทรกข้อความ คำค้น:ลงไป

รูปแสดงการแทรกข้อความ คำค้น

7. คอลัมน์ที่ 2 ของตาราง และให้แทรกอ็อบเจ็คต์ของฟอร์มชนิด Text Field ลงไป โดยคลิกที่เมนู Insert > Form > Text Field หลังจากนั้นให้กำหนดคุณสมบัติของ Text Field ดังต่อไปนี้

ค่าของไดอะล็อก

ค่าที่กำหนด

TextField

keywords

Char Width

25

Max Chars

25

Type

Single line

ตารางแสดงการกำหนด Property ของ Text Field

รูปแสดงการกำหนด Property ของ Text Field

รูปแสดงไฟล์ searchadv.php หลังการแทรก Text Field

8. คอลัมน์ที่ 3 ของตาราง ให้แทรกอ็อบเจ็คต์ของฟอร์มชนิด Button ลงไป โดยคลิกที่เมนู Insert > Form > Button หลังจากนั้นให้กำหนดคุณสมบัติของ Button โดยไปที่เมนู Window > Properties แล้วให้กำหนดค่าดังนี้

ค่าของไดอะล็อก

ค่าที่กำหนด

Label

Search

Action

Submit form

ตารางแสดงการกำหนด Property ของ Button

รูปแสดงการกำหนด Property ของ Button

9. บันทึกไฟล์ searchadv.php

รูปแสดงหน้าจอไฟล์ searchadv.php หลังการแทรก Button

 

 

(2) การค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic)

ขั้นตอนนี้ จะเป็นการ Recordset (Query) สำหรับค้นหาข้อมูลจากฐานข้อมูล โดยจะมีการกำหนดเงื่อนไขในการค้นหาข้อมูลจาก URL Parameter ชื่อ $_GET[keywords] ที่ส่งมาจากไฟล์ searchadv.php

การแทรก Recordset (Query) นี้ จะคล้ายกับขั้นตอนการสร้างในไฟล์ list.php เพื่อเป็นการประหยัดเวลา จึงแนะนำให้เปิดไฟล์ list.php ขึ้นมาแล้วบันทึกเป็นไฟล์ resultadv.php

ขั้นตอนการค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic):

1. เปิดไฟล์ list.php ของระบบแสดงผลข้อมูลขึ้นมา ให้บันทึก (SAVE AS) เป็นไฟล์ resultadv.php

2. คลิกที่เมนู Window > Bindings ดับเบิลคลิกที่รายการ Recordset (rsEmp) เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา ให้กำหนดค่าของตัวแปรต่างๆ ดังรายละเอียดต่อไปนี้

NOTE:

เปิดไฟล์ list.php จากขั้นตอนการสร้างระบบแสดงผลข้อมูลหรือ PHPWEB\labs\solutions\lab05_displayrecords\list.php
ขึ้นมาแล้วบันทึกเป็นไฟล์
PHPWEB\resultadv.php (หากปรากฏไดอะล็อก Update Links ให้คลิก No)

รูปแสดงการดับเบิลคลิก Recordset (rsEmp)

รูปแสดงไดอะล็อก Recordset

ค่าของไดอะล็อก

ค่าที่กำหนด

(3) การใช้งานระบบค้นหาข้อมูลแบบเงื่อนไขเดียว (Basic)

เริ่มต้นโดยใช้โปรแกรม Dreamweaver MX เปิดไฟล์ searchadv.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ searchadv.php หลังจากนั้นให้พิมพ์คำค้น และคลิกปุ่ม Search เพื่อค้นหาข้อมูลจากฟิลด์ firstname


 

(4) การค้นหาข้อมูลแบบหลายเงื่อนไข (Advanced)

ในขั้นตอนที่ผ่านมา เราได้ค้นหาข้อมูลโดยในการ Filter ข้อมูลนั้นจะเป็นการเปรียบเทียบค่าฟิลด์ firstname กับ URL Parameter $_GET[keywords] ซึ่งก็หมายถึง ค้นหาข้อมูลจากฟิลด์ firstname ฟิลด์เดียวเท่านั้น

การค้นหาด้วยเงื่อนไขที่ซับซ้อนมากกว่านี้ สามารถทำได้โดยการดับเบิลคลิก Recordset(rsEmp) ขึ้นมา แล้วคลิกปุ่ม Advanced เพื่อเข้าไปเพิ่มเติมเงื่อนไขการค้นหาข้อมูล

ขั้นตอนการค้นหาข้อมูลแบบหลายเงื่อนไข (Advanced):

1. เปิดไฟล์ list.php ของระบบแสดงผลข้อมูลขึ้นมา ให้บันทึก (SAVE AS) เป็นไฟล์ resultadv.php

2. คลิกที่เมนู Window > Bindings ดับเบิลคลิกที่รายการ Recordset (rsEmp) เมื่อปรากฏไดอะล็อก Recordset ขึ้นมา ให้คลิกปุ่ม Advanced เพื่อกำหนดแก้ไขคำสั่ง SQL สำหรับค้นหาหลายเงื่อนไข

รูปแสดงการดับเบิลคลิก Recordset (rsEmp)

รูปแสดงไดอะล็อก Recordset

รูปแสดงไดอะล็อก Recordset ในโหมด Advanced

3. เมื่ออยู่ในโหมด Advanced จะเห็นว่าในช่อง SQL จะแสดงชุดคำสั่ง SQL ในการเรียกค้นหาข้อมูล ดังรูปคำสั่งด้านล่าง
แล้วทดสอบการค้นหาโดยการกด F12

SELECT employeeid, firstname, lastname, phone, extension

FROM employees

WHERE (employees.firstname LIKE ‘%colname%’)

ORDER BY firstname ASC

รูปแสดงการกำหนดเงื่อนไขให้ค้นหาจาก firstname

4. ปรับคำสั่งในไดอะล็อก Recordset ดังรูปคำสั่งด้านล่าง เพื่อ JOIN ตาราง departments เอาฟิลด์ชื่อแผนก (deptname) มาแสดงผลและเพิ่มเงื่อนไขให้ค้นหาจากฟิลด์ firstname และ lastname หลังจากนั้นให้ทดสอบการค้นหาโดยเปิด Dreamweaver MX ไปที่ไฟล์ searchadv.php แล้วกด F12

SELECT employees.*, departments.deptname

FROM employees, departments

WHERE employees.deptid = departments.deptid

AND ( employees.firstname LIKE ‘%colname%’ OR employees.lastname LIKE ‘%colname%’ )

ORDER BY firstname ASC

รูปแสดงการ JOIN ตาราง departments เพื่อเอาชื่อแผนกมาแสดง และค้นหาจาก fistname และ lastname


5. ปรับคำสั่งในไดอะล็อก Recordset ดังรูปคำสั่งด้านล่าง และเพิ่มเงื่อนไขให้ค้นหาจากฟิลด์ employeeid firstname lastname email และ deptname หลังจากนั้นให้ทดสอบการค้นหาโดยเปิด Dreamweaver MX ไปที่ไฟล์ searchadv.php แล้วกด F12

SELECT employees.*, departments.deptname

FROM employees, departments

WHERE employees.deptid = departments.deptid

AND ( employees.employeeid LIKE ‘%colname%’

OR employees.firstname LIKE ‘%colname%’
OR employees.lastname LIKE ‘%colname%’

OR employees.email LIKE ‘%colname%’

OR departments.deptname LIKE ‘%colname%’

)

ORDER BY firstname ASC

รูปแสดงการกำหนดเงื่อนไขให้ค้นหาจากหลายฟิลด์

6. บันทึกไฟล์ resultadv.php

(5) การใช้งานระบบค้นหาข้อมูลแบบหลายเงื่อนไข

เริ่มต้นโดยใช้โปรแกรม Dreamweaver MX เปิดไฟล์ searchadv.php ขึ้นมา แล้วกดปุ่ม F12 โปรแกรม Internet Explorer จะถูกเปิดขึ้นมาเรียกใช้งานไฟล์ searchadv.php หลังจากนั้นให้พิมพ์คำค้น และคลิกปุ่ม Search เพื่อค้นหาข้อมูล
โดยให้ทดสอบพิมพ์คำค้นที่ตรงกับค่าในฟิลด์
employeeid firstname lastname email และ deptname ทีละเงื่อนไข

แล้วสังเกตผลลัพธ์ว่าถูกต้องหรือไม่

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress