จะทำ Search โดยใช้คำค้นหาหลายคำยังไง หามาทั้งวันละ GOOGLE ไม่ช่วยอ่าไรเลย = =a
คุณอาจจะต้องใช้ or เข้ามาค้นหา โดยแบ่งเป็นประโยค ๆ
หรือไม่ใน MYSQL Full-Text ก็ได้ครับ
Go to : SQL/MYSQL Full-Text Search
Date :
2011-06-26 20:02:18
By :
webmaster
อ่าครับ กำลังลองดูคือ ตอนนี้ ค้นหาแล้วไม่เจอข้อมูลเลย
SQL ผมใส่ไว้แบบนี้
Code (PHP)
$sql="SELECT * FROM herb WHERE MATCH (Properties) AGAINST ('$_GET[search]')";
เวลาค้นหาลองใช้คำว่า ท้องอืด ก็ไม่เจอข้อมูลอ่ะ
ลองเอาคำสั่งนิไปค้นหาในฐานข้อมูล sql ดูก็ไม่เจอเหมือนกัน ทำไรผิดหว่า
ก็ตั้ง FULL TEXT แล้วนิหว่า = =a
Code (PHP)
ALTER TABLE `herb` ADD FULLTEXT(`Properties`);
ผมทำอ่าไรผิดไปนะ มันถึงไม่ขึ้นไรเลย Error ก็ไม่มี = =a
Date :
2011-06-26 20:44:16
By :
hotreplay
ลืมบอก่อนครับ ว่า FullText ไม่ Support ภาษาไทยครับ
Date :
2011-06-26 21:04:50
By :
webmaster
กำ แล้วมีวิธีอื่น แนะนำอีกไหมอ่าครับ
เห็นอันแรกบอกใช้ or ก็ได้
รบกวนขอตัวอย่าง SQL นิดนึงได้ไหมอ่าครับ
ไม่รู้จะแบ่งประโยคให้มันไปค้นหายังไง เพราะมันอยู่ใน TEXTFIELD เดียวกัน
ประวัติการแก้ไข 2011-06-26 21:09:38
Date :
2011-06-26 21:08:49
By :
hotreplay
คุณจะต้องแยก string ออกมาเป็นชุด ๆ ก่อนน่ะครับ จากนั้นก็ or แต่ล่ะชุดครับ
Go to : PHP explode()
Date :
2011-06-26 21:11:34
By :
webmaster
อ่าครับ เดียวจะลองดูนะครับ ถ้าไม่เข้าใจหรือไม่ได้อ่าไรนะมา โพสถามอีกนะครับ
ยังไงก็ขอบคุณ คุณ mr.win มากๆเลยครับ ^^ นั่งหามาทั้งวันจนปวดตาปวดหัวจะแย่ละ ^^
Date :
2011-06-26 21:19:50
By :
hotreplay
ถ้ากรอกมาสองคำ คุณก็ใช้ ฟั่งก์ชั่นที่แยกคำออกมาก่อนครับ explode(' ',$string); แล้วเอาแต่ละตัวมาวนต่อในคำสั่งที่จะ query
Date :
2011-06-26 21:31:36
By :
oxygenyoyo
ตอบความคิดเห็นที่ : 7 เขียนโดย : oxygenyoyo เมื่อวันที่ 2011-06-26 21:31:36
รายละเอียดของการตอบ ::
ขอบคุณครับ ก่าจะทำให้มันวนลูบได้ นั่งงงอยู่นานเลย งุงุ มั่วไปมั่วมา code ถึงจะแปลกๆหน่อย แต่ก็ได้ผลออกมาตามที่ต้องการ ข้างล่างนิ Code ที่มั่วมา ^^
Code (PHP)
if($_GET["select"]==1){
$sql2="select * from herb where Hname LIKE '".$_GET["search"]."' ";
}
if($_GET["select"]==2){
$text = $_GET["search"];
list($Stext[0], $Stext[1], $Stext[2], $Stext[3], $Stext[4], $Stext[5], $Stext[6], $Stext[7], $Stext[8], $Stext[9], $Stext[10]) = explode(" ", $text);
$Si=0;
while($Stext[$Si] !=""){
if($Si <= 0){
$sql2 = "select * from herb where Properties LIKE '%".$Stext[0]."%' ";
$Si++;
}
if($Stext[$Si] !=""){
$sql3 = "OR Properties LIKE '%".$Stext[$Si]."%' ";
$Stext2[$Si]="$sql3";
$sql2 = "$sql2"."$Stext2[$Si]";
$Si++;
}
}
}
if($_GET["select"]==3){
$sql2="select * from herb where Caution LIKE '%".$_GET["search"]."%' ";
}
$result2 = mysql_query($sql2) or die ("Error Query [".$sql2."]");
Date :
2011-06-26 23:10:25
By :
hotreplay
Code (PHP)
if($_GET["select"]==1){
$sql2="select * from herb where Hname LIKE '".$_GET["search"]."' ";
}
if($_GET["select"]==2){
$text = $_GET["search"];
$Stext = explode(" ", $text);//แบบนี้ได้เยอะกว่าที่คุณกำหนดนะครับและได้พอดีกับข้อมูล
foreach($Stext As $val){
if(empty($sql2)){
$sql2 = "select * from herb where Properties LIKE '%".$val."%' ";
}else{
$sql2 .= "OR Properties LIKE '%".$val."%' ";
}
}
}
if($_GET["select"]==3){
$sql2="select * from herb where Caution LIKE '%".$_GET["search"]."%' ";
}
$result2 = mysql_query($sql2) or die ("Error Query [".$sql2."]");
ประวัติการแก้ไข 2011-06-27 03:14:22 2011-06-27 03:24:01
Date :
2011-06-27 03:11:44
By :
phajvaj
ขอบคุณครับ คุณ sAcIw ที่แกล้งให้ = =a สั้นๆ ได้ใจความกว่าของผมเยอะเลย อิอิ
Date :
2011-06-27 12:55:39
By :
hotreplay
Load balance : Server 00