|
|
|
สอบถามเรื่องการค้นหาข้อมูลใน textarea ที่มีการเว้นวรรคค่ะ |
|
|
|
|
|
|
|
แบบนี้หรือเปล่า ลองดูนะ
Code (PHP)
<?
$search_text = "1 3";
if($search_text!=""){
$explode_search_text = explode( " ", $search_text);
for($s=0;$s<count($explode_search_text); $s++){
if($explode_search_text[$s]!=""){
if($search_like){$search_like.=" or ";}
$search_like.= " fields_name like '%".$explode_search_text[$s]."%' ";
}
}
}
$sql="select * from table_name where $search_like";
?>
|
|
|
|
|
Date :
2010-09-10 10:04:30 |
By :
heng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ เดี๋ยวของลองดูก่อนนะคะ
|
|
|
|
|
Date :
2010-09-10 10:18:34 |
By :
เอม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วไม่ได้ค่ะ รบกวนขอโค้ดแบบเต็มได้มั้ยคะ มันไม่มีผลลัพธ์ออกมาเลยน่ะค่ะ
|
|
|
|
|
Date :
2010-09-10 10:37:18 |
By :
เอม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็เอาคำที่กรอกมาทำแบบนีไดมั้ยค่ะ Code (PHP)
function Serach($tag){
$tag=str_replace(' ',",",$tag);
$tag=str_replace(' ',",",$tag);
$tag=str_replace('-',",",$tag);
$tag=str_replace('_',",",$tag);
$tag=str_replace('(',",",$tag);
$tag=str_replace(')',",",$tag);
$tag=str_replace('--',",",$tag);
$tag=explode(",",$tag);
for($i=0;$i<count($tag);$i++){
$searchtag[]=" Name LIKE '%{$tag[$i]}%' ";
}
if(is_array($searchtag)){
$conditon =' WHERE ( '. join(' OR ' , $searchtag).')' ;
}
$rs1=$db->Query("SELECT * FROM --- $conditon limit 0,3");
}
แบบค่าที่มันรับมาจาก textarea จะเก็บไว้ใน array แล้วจะคำทุกคำใน array มาค้นหา เท่านี้ก็น่าจะได้ทุกคำแล้วนะคะ
|
ประวัติการแก้ไข 2010-09-10 11:07:38 2010-09-10 11:09:04 2010-09-10 11:17:12
|
|
|
|
Date :
2010-09-10 11:00:42 |
By :
ree48012 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลอง echo $sql; ดู
แล้วเอามาดูหน่อยครับ
|
|
|
|
|
Date :
2010-09-10 11:50:15 |
By :
heng |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้แล้วค่ะ ขอบคุณมากนะคะ คุณ heng กะน้อง รี
แต่เดี๋ยวขอลองอีกทีก่อนถ้าไม่ได้เดี๋ยวมาถามใหม่
|
|
|
|
|
Date :
2010-09-10 13:46:52 |
By :
เอม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ๋อคุนจะเก็บ keyword ลงฐานข้อมูล และใช้ textarea อันเดียวจัดเก็บแต่ว่า หนึ่ง record มีได้หลาย keyword
คุนก้อเลยใช้ space เป็นตัวแบ่ง keyword แล้วจะนำ keyword มา search จากฐานข้อมูลใช่ปะคะ
อื้มถ้าทำได้แล้วก้อโอค่ะ มะมีรายละ
|
ประวัติการแก้ไข 2010-09-10 13:49:33
|
|
|
|
Date :
2010-09-10 13:48:39 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าต้องการหาใน 2 ฟิว จะเพิ่มโค้ดตรงไหนคะ
|
|
|
|
|
Date :
2010-09-10 13:48:48 |
By :
เอม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค้นหาภาษาไทยไม่ได้ค่ะ แต่ภาษาอังกฤษกับตัวเลขหาเจอค่ะ ไม่ทราบว่าจะเพิ่มอะไรตรงไหนคะ
โค้ดที่คุณ heng ให้มาน่ะค่ะ
Code (PHP)
<?
$search_text =$_GET["search_text"];
if($search_text!=""){
$explode_search_text = explode( " ", $search_text);
for($s=0;$s<count($explode_search_text); $s++){
if($explode_search_text[$s]!=""){
if($search_like){$search_like.=" or ";}
$search_like.= " word like '%".$explode_search_text[$s]."%' ";
}
}
}
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydb");
$strSQL="select * from product where $search_like";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
echo"$strSQL";
?>
|
ประวัติการแก้ไข 2010-09-10 14:54:02
|
|
|
|
Date :
2010-09-10 14:53:01 |
By :
เอม |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ติงว่าคุนออกจะทำผิดหลักหน่อยนะคะ ปกติเราไม่ค่อยเก็บ keyword อัดกันใน field เดียวแบบนั้น
ควรจะซอยย่อยออกไปอีก table นึงเวลาค้นหาจะเป็นธรรมชาติมากกว่า แต่ถ้ามันโอแล้วก้อแล้วไปค่ะ
|
|
|
|
|
Date :
2010-09-10 15:07:13 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|