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

เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdee
hilight php ค้นหา ข้อมูล

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ hilight php ค้นหา ข้อมูล

ดูแล้ว 15,622 ครั้ง


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 คำที่ค้นหาในรายการที่แสดง
	}	
}	
?>


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











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





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ