ของสอบถามเรื่องการค้นหาแบบข้อความครับ


ผมจะค้นหาแบบข้อความ  เช่น ค้นหา คำว่า hello world



แต่ในฐานข้อมูลผมมี hello    world   ทำให้ค้นหาคำว่า hello world ไม่เจอ



มีวิธีไหนบ้าง ครับ ทำให้ ค้นหา เจอ   ขอบคุณครับ


21 ก.พ. 2554 6 1,889

โดยปกติแล้ว เราจะใช้วิธีแยกข้อมูลค้นหาออกเป็นคำๆ ครับ เช่นจากโจทย์ เราจะคนหาคำว่า hello หรือ word ครับ



เวลาค้นหาก็จะได้ประมาณ



WHERE detail LIKE '%hello%' OR detail LIKE '%word%'
#1

ลองดูตามนี้คับ (มือใหม่คับผม ^ ^)

$string="Hello World";

$words==preg_split("/[\s]+/",$string);#แยกออกทีละคำ โดยแบ่งตามช่องว่าง (" ")

$sql="SELECT * FROM tb_product WHERE pd_id <> '' AND ( ";

foreach($words as $word){

    if($i<count($words)){#ตรวจสอบว่าถึงคำสุดท้ายหรือยัง

    $sql.=" pd_detail LIKE '%$word%' OR ";    

    }else{#ถ้าถึงคำสุดท้ายแล้ว ให้เอาคำสั่ง OR ออก

    $sql.=" pd_detail LIKE '%$word%'";    

    }

    $i++;

}

$sql.=")";
#2


LINK ======> LIKE


#3

อ้างอิงจาก ความคิดเห็น #3


LINK ======> LIKE




โทดทีคับ ^ ^"


quote edit delete

ลองดูตามนี้คับ (มือใหม่คับผม ^ ^)

$string="Hello World";

$words==preg_split("/[\s]+/",$string);#แยกออกทีละคำ โดยแบ่งตามช่องว่าง (" ")

$sql="SELECT * FROM tb_product WHERE pd_id <> '' AND ( ";

foreach($words as $word){

    if($i<count($words)){#ตรวจสอบว่าถึงคำสุดท้ายหรือยัง

    $sql.=" pd_detail LINE '%$word%' OR ";    

    }else{#ถ้าถึงคำสุดท้ายแล้ว ให้เอาคำสั่ง OR ออก

    $sql.=" pd_detail LINE '%$word%'";    

    }

    $i++;

}

$sql.=")";
#4


ขอบคุณครับ


#5


ใจเย็นๆครับท่าน t007 พิมพ์ผิดอีกหรือเปล่านั่น



LINE or LIKE



แล้วก็ตรง if($i<count($words)){  ให้เพิ่ม -1 เป็นแบบนี้ครับ



if($i<count($words)-1){







 


#6
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^