ตัวอย่าง form search สำหรับคันหาข้อมูลด้วย php

มีหลายครั้งครับที่เราสามารถหยิบเอาความสามารถของ SQL มาช่วยให้ระบบง่ายขึ้น การเขียน Code ง่ายขึ้น
อย่่างเรื่องของการสร้าง form สำหรับค้นหาข้อมูลหรือที่เรารู้จักกันในนามของกล่อง search เป็นประโยชน์
มากสำหรับระบบที่มีขนาดปริมาณข้อมูลเป็นจำนวนมาก เพราะหากต้องมานั่งมองกันทีละรายชื่อคงตาลายแน่
ตรงนี้ผมคิดว่าเป็นความสามารถของ SQL นะครับที่ช่วยเราเอาไว้ ลองมาดูกัน Code อาจจะเยอะซักนิดนะครับ

อันดับแรกผมสร้างไฟล์ชื่อ search.php ขึ้นมาก่อน

จากนั้นผมสร้าง Form สำหรับกรอกคำค้นด้วย HTML

<form action=”search.php” method=”post” name=”search”>
search :: <input type=”text” size=”20″  name=”search” />
<input type=”submit” value=” search ” />
</form>

ให้ส่งค่ากลับมาที่หน้าเดิมนี่แหละครับ ด้วยรูปแบบ POST จากนั้นผมทำการตรวจสอบว่ามีการ
ส่งข้อมูลมารึยังด้วยการใช้ IFตรวจสอบว่ามีการตั้งค่าที่ตัวแปร $search แล้วรึยัง

<?php
//ถ้ามีการส่งค่าข้อมูล
$search = $_POST[search];
if(isset($search) ) {
echo “<font size=’-1′ color=’#FF0000′>ผลลัพธ์ของคำว่า [ $search ] </font><br />”;
?>

ดูตรงบรรทัดสุดท้ายนะครับ ผมแสดงคำว่า $search เพื่อให้ผู้ใช้รู้ว่าตนส่งคำค้นมาว่าอะไร จากนั้น
ผมสร้างตารางขึ้นมาเพื่อเตรียมไว้ใช้กับข้อมูลที่จะทยอยตามออกมาต่อจากนี้ โดยสร้างเป็นชื่อของ
คอลัมน์ไว้ที่ด้านบนสุดด้วย

<table align=”left” width=”50%” border=”0″>
<tr bgcolor=”#FFFFFF”>
<td>ชื่อจริง</td>
<td>นามสกุล</td>
<td>อายุ</td>
<td>เพศ</td>
<td>แผนก</td>
<td>เงินเดือน</td>
</tr>

แล้วผมก็เริ่มติดต่อกับฐานข้อมูล

$con = mysql_connect(“localhost”,”root”,”root”);
mysql_select_db(“vdo”,$con);

ผมเริ่มด้วยการแสดงข้อมูลออกมาทั้งหมดจากระบบก่อนโดยให้ SQL เป็นคนทำงานโดยใช้คำสั่ง
SELECT * FROM ชื่อตาราง where ชื่อคอลัมน์ like ‘%$search%’ การที่เราใส่ % ครอบไว้ที่
หน้าและหลังข้อความหมายถึงว่าข้างหน้าจะเป็นตัวอักษรอะไรก็ได้ และข้างหลังจะเป็นตัวอักษร
อะไรก็ได้แต่ขอให้ทั้งคำมีตัวอักษรอย่างที่อยู๋ในคำค้นเป็นพอ

$result = mysql_query(“SELECT * FROM mytable where fname like ‘%$search%’ “);
$num = mysql_num_rows($result);
echo “<font size=’-1′ color=’green’>ค้นพบทั้งหมด :: [ $num ] </font><br />”;

จากนั้นผมก็สร้างตัวแปรชื่อ $num ขึ้นมา เพื่อใช้คำสั่ง mysql_num_rows ในการนนับจำนวนผลลัพธ์
ทั้งหมดที่ออกมาว่ามีจำนวนเท่าไหร่ จากนั้นผมก็สร้างตัวแปรชื่อ $view ขึ้นมาอีกเพื่อ query ชุด SQL
และใช้คำสั่ง While ในการวน loop อีกที

<?

$view = mysql_query($result);
while ($data = mysql_fetch_array($view) ) {
?>
<tr>
<td><?php echo “$data[fname]”; ?></td>
<td><?php echo “$data[lname]”; ?></td>
<td><?php echo “$data[age]”; ?></td>
<td><?php echo “$data[gender]”; ?></td>
<td><?php echo “$data[department]”; ?></td>
<td><?php echo “$data[salary]”; ?></td>
</tr>
<?php
} //End while loop

ตอนนี้ก็จบในส่วนของการแสดงผลที่ดึงออกมาจากฐานข้อมูลที่เราได้มาจากคำค้นทีนี้
สำหรับข้อมูลที่ไม่มี และข้อมูลที่ยังไม่ได้แสดงก็ใช้

} else {
echo “กรุณากรอกคำค้นของคุณ”;
}

ในการแสดงผล

ก็มีกระบวนการอยู่ประมาณนี้นะครัยลองทำดูแต่ไม่ได้อธิบายเป็น Video ให้ในเรื่องนี้เพราะเห็นว่า
Code ค่อนข้างยาว แต่ผมใส่ Code ทั้งหมดใน File search.php มาให้ดูด้วย

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-874″ />
<title>สร้าง Form สำหรับค้นหาข้อมูล</title>
</head>
<body bgcolor=”#999999″>
<form action=”search.php” method=”post” name=”search”>
search :: <input type=”text” size=”20″  name=”search” />
<input type=”submit” value=” search ” />
</form>
<hr />
<?php
//ถ้ามีการส่งค่าข้อมูล
$search = $_POST[search];
if(isset($search) ) {
echo “<font size=’-1′ color=’#FF0000′>ผลลัพธ์ของคำว่า [ $search ] </font><br />”;
?>
<table align=”left” width=”50%” border=”0″>
<tr bgcolor=”#FFFFFF”>
<td>ชื่อจริง</td>
<td>นามสกุล</td>
<td>อายุ</td>
<td>เพศ</td>
<td>แผนก</td>
<td>เงินเดือน</td>
</tr>
<?php
$con = mysql_connect(“localhost”,”root”,”root”);
mysql_select_db(“vdo”,$con);

$result = mysql_query(“SELECT * FROM mytable where fname like ‘%$search%'”);
$num = mysql_num_rows($result);
echo “<font size=’-1′ color=’green’>ค้นพบทั้งหมด :: [ $num ] </font><br />”;

$sql = “select * from mytable where fname like ‘%$search%’ “;
$view = mysql_query($sql);
while ($data = mysql_fetch_array($view) ) {
?>
<tr>
<td><?php echo “$data[fname]”; ?></td>
<td><?php echo “$data[lname]”; ?></td>
<td><?php echo “$data[age]”; ?></td>
<td><?php echo “$data[gender]”; ?></td>
<td><?php echo “$data[department]”; ?></td>
<td><?php echo “$data[salary]”; ?></td>
</tr>
<?php
} //End while loop

} else {
echo “กรุณากรอกคำค้นของคุณ”;
}
?>
</body>
</html>

ขอบคุณนะครับ

waraluk.com รับสกรีนเสื้อยืด โปโล กระเป๋าผ้า

waraluk.com รับสกรีนเสื้อยืด โปโล กระเป๋าผ้า