Graphic ComScience

บทที่ 10
การสร้างระบบค้นหาข้อมูล

 

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

 

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

 

ระบบค้นหาข้อมูลในส่วนที่จะอธิบายนี้  จะประกอบด้วยไฟล์ 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

3

Columns

50 percent

Table width

1 pixels

Border thickness

3

Cell padding

1

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

 

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

ค่าที่กำหนด

Name

rsEmp 

Connection

dbconn

Table

employees

Columns

Employeeid, firstname, lastname, phone, extension

Filter

ช่องที่ 1: firstname  หมายถึงให้ค้นหาจากฟิลด์ firstname

 

ช่องที่ 2: contains     หมายถึงให้ค้นหาแบบประกอบด้วย (LIKE) 

 

ช่องที่ 3: URL Parameter   หมายถึง รับค่าคำค้นจาก URL Parameter
                                                            (ส่งมาจากฟอร์มที่ METHOD="GET") 

 

ช่องที่ 4: keywords หมายถึง คำค้นถูกส่งมาเป็น URL Parameter ชื่อ keywords

Sort

Firstname  ,  Ascending   หมายถึง  เรียงลำดับตาม firstname  น้อยไปหามาก

 

(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)  การใช้งานระบบค้นหาข้อมูลแบบหลายเงื่อนไข (Advanced)

 

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

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

 

About Us | Privacy Policy | Contact Us | ©2006 ComputerGraphs

Hosted by www.Geocities.ws

1