CODE-FATHER.COM : เว็บไซต์แห่งการแบ่งปัน แหล่งรวมโปรแกรมเมอร์ ฟรี ซ๊อสโค้ดที่หาไม่ได้จากที่ไหน

หน้าแรก | ความสามารถ | วิธีใช้โปรแกรม | การนำโค้ดไปใช้ | บทความ PHP | ตัวอย่างโปรเจ็ค VB
| รับเขียนโปรแกรม | ติดต่อเรา | ดาวน์โหลด

   
  การค้นหาข้อมูลในฐานข้อมูล ตามรายชื่อฟิลด์ที่ต้องการนั้น หลาย ๆ คนคงจะเคยพบเจอกันมาบ้างแล้ว
ซึ่งผู้ใช้งานจะสามารถค้นหาและใช้งานได้สะดวก รวดเร็ว และถูกต้องตรงตามความต้องการมากกว่าการไม่ระบุฟิล์
ที่จะค้นหา
 
วันนี้จึงขอนำเสนอเทคนิค วิธีการ ที่ผมใช้อยู่ครับ
  อาจจะไม่ใช่เทคนิค "ขั้นเทพ" อะไร แต่คนธรรมดาอย่างเรา ๆ ก็ใช้ได้ ไม่มีปัญหา
  ตัวอย่างนี้จะเป็นการค้นหาข้อมูลนักเรียนนะครับ จะมีค้นหาตามรหัสนักศึกษา ตามชื่อ ตามนามสกุล และตามกลุ่มเรียน

คลิกที่รูปเพื่อดูภาพขนาดจริง
 
   
 

โค้ดในส่วนของฟอร์มค้นหา


<form name="form1" method="post" action="student.php?show=OK&strSearch=Y">
<table width="100%" >
<tr>
<td width="36%">
<div align="right">ค้นหา :
<select name="Search2">
     <option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
     <option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
     <option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
     <option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>
</select></div>
</td>
<td width="64%">

     <input name="Search" type="text" size="20" value="<? echo $Search?>">
     <input type="submit" name="submit" value="Search"> ตามรหัสนักศึกษา,ชื่อ, นามสกุล, กลุ่มเรียน
</td>
</tr>
</table>
</form>

 

$Search = ตัวแปรที่ใช้เก็บข้อความที่เราค้นหาครับ เมื่อส่งค่าไปค้นหาแล้วก็จะนำค่าตัวแปรนี้ไปแสดงไว้ในช่องค้นหา
ตามโค้ดนี้
<input name="Search" type="text" size="20" value="<? echo $Search?>"> เพื่อให้ผู้ใช้ได้รู้ว่าเขาค้นหา
อะไร

$Search2 = เป็นตัวแปรที่ใช้เก็บชื่อฟิล์ดที่เราค้นหา เมื่อส่งค่าไปค้นหาก็จะนำตัวแปรนี้ไปตรวจสอบ ตามโค้ดนี้

<option value="Student_ID" <? if($Search2=="Student_ID"){ ?>selected<? }?>>รหัสนักศึกษา</option>
<option value="FirstName" <? if($Search2=="FirstName"){ ?>selected<? }?>>ชื่อ</option>
<option value="LastName" <? if($Search2=="LastName"){ ?>selected<? }?>>นามสกุล</option>
<option value="Group_Study" <? if($Search2=="Group_Study"){ ?>selected<? }?>>กลุ่มเรียน</option>
เพื่อให้ผู้ใช้ได้รู้ว่าเขาได้เลือกค้นหาตามเงื่อนไขได เช่น ถ้าผู้ใช้เลือกค้นหาตาม ชื่อ เมื่อค้นหาเสร็จระบบก็จะตรวจเช็ค

และทำการโฟกัส หรือ Selected ไว้ที่ ชื่อ

 

* * * ถ้าไม่ส่งค่าตัวแปรทั้ง 2 ตัวนี้ ผู้ใช้ก็จะไม่ทราบว่าตัวเองได้ค้นหาอะไร ตามเงื่อนไขอะไร ครับ

 

 
 


โค้ดในส่วนของการค้นหา

 

if($strSearch=="Y"){
     $sql="select * from tbl_student Where ".$Search2." like '%".$Search."%' "; // คำสั่งค้นหา
}else{
     $sql="select * from tbl_student";
}

     $Qtotal = mysql_query($sql);


เนื่องจาก ผมได้ทำหน้าเพิ่ม ลบ แก้ไข ค้นหา ไว้ในหน้าเดียวกันหมด เลยต้องสร้างตัวแปร strSearch ขึ้นมา

<form name="form1" method="post" action="student.php?show=OK&strSearch=Y">

ตอนส่งค่าไปก็จะเข้าโหมดการค้นหาต่อไป

 

 

อธิบายคำสั่งนิดนึงนะครับ เผื่อคนที่ยังไม่รู้

 

select * from tbl_student Where ".$Search2." like '%".$Search."%'

 

เป็นคำสั่งเลือกข้อมูลจากฐ้านข้อมูล ตามเงื่อนไขครับ เช่น ถ้าผู้ใช้ค้นหาตามชื่อ และระบุชื่อที่ค้นหาเป็น ""

แล้วคลิกปุ่มค้นหา ระบบก็จะส่งค่าตัวแปร Search Search2 และ strSearch=Y ไป

ก็จะมาเข้าเงื่อนไขที่เราเช็คไว้ ตามโค้ดข้างบนนะครับ แล้วโค้ดคำสั่ง sql ก็จะได้ ดังนี้ครับ ถ้าลอง echo ตัวแปร $sql

 

select * from tbl_student Where FirstName like '%ก%'

 


เงื่อนไข like ของคำสั่ง Sql Select

- ถ้าต้องการค้นหาข้อมูลที่ขึ้นต้นด้วย X ก็ใช้รูปแบบดังนี้ครับ like 'X%'

- ถ้าต้องการค้นหาข้อมูลที่ลงท้ายด้วย X ก็ใช้รูปแบบดังนี้ครับ like '%X'

- ถ้าต้องการค้นหาข้อมูลที่ประกอบด้วย X (ไม่ว่า X จะอยู่หน้า หลัง กลาง ) ก็ใช้รูปแบบดังนี้ครับ like '%X%'

   
  เป็นอย่้างไรบ้างครับ พอจะรู้เรื่องหรือเปล่า อาจจะไม่เห็นภาพ
  แต่ก็พยายามจะอธิบายละเอียดที่สุด เท่าที่จะสามารถทำได้
  ข่อย ๆ อ่านตามไปเรื่อย ๆ ที่ละบรรทัด ให้หมดนะครับ อย่ารีบใจร้อน
  หากไม่เข้าใจก็สอบถามมาได้ตลอดครับ
   
 

 

 
"เพราะความรู้ คือการแบ่งปัน และการให้ ยิ่งใหญ่ ไร้เทียมทาน"


รับเขียนโปรแกรม โปรเจ็ค VB6 PHP ราคาไม่แพง อย่างที่คิด