PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

เทคนิค php ค้นหาข้อมูล และ hilight กรณี keyword มากกว่า 1 ค่า

28 November 2009 By


css ของข้อความที่ทำ hilight

<style type="text/css">
span.iHilight{ /* กำหนดรูปแบบ css ของข้อความที่ทำ hilight */
	color:#DA0044;
	background-color:#FFFFCC;
}
</style>

PHP code แนวทางสำหรับนำไปประยุกต์ใช้งาน

<?php
if($_GET['q'] && $_GET['q']!=""){
	$any_keyword=explode(" ",$_GET['q']); // แยกค่า keyword แต่ละตัวออกจากข้อความ หรือประโยคที่ค้นหา
	$patterns=array(); // ตัวแปร array สำหรับเก็บค่า รูปแบบสำหรับค้นหา
	$replacements=array(); // ตัวแปร array สำหรับเก็บค่า รูปแบบสำหรับแทนที่
	$num_keyword=count($any_keyword); // หาค่าจำนวน keyword
	$qMore=""; // ตัวแปร สำหรับเก็บค่า เงื่อนไขคำสั่ง sql
	if($num_keyword>0){ // ตรวจสอบค่า keyword ว่ามากกว่า 0 หรือไม่
		foreach($any_keyword as $key=>$value){ // วนลูปสำหรับกำหนดค่า ตัวแปร ต่างๆ
			$qMore.=" arti_topic like '%".trim($value)."%' or "; // กำหนดรูปแบบสำหรับเงื่อนไขคำสั่ง sql
			$patterns[$key]="/".trim($value)."/i"; // กำหนดรูปแบบสำหรับค้นหา
			$replacements[$key]="<span class=iHilight>".trim($value)."</span>";  // กำหรดรูปแบบสำหรับแทนที่
		}
		$qMore=substr($qMore,0,-3); // ตัดส่วนท้ายของคำสั่ง sql ( ตัด or ส่วนท้ายคำสั่ง sql )
	}
	// คำสั่ง sql สำหรับแสดงข้อมูล
	$q="SELECT * FROM `article` WHERE $qMore   ";
	$qr=mysql_query($q);
	while($rs=mysql_fetch_array($qr)){
		$iTopic=preg_replace($patterns, $replacements, $rs['arti_topic']);  // hilight คำที่ค้นหาในรายการที่แสดง
	}	
}	
?>

Tags:: hilight ค้นหา php ข้อมูล





URL สำหรับอ้างอิง