简体   繁体   English

Php Mysql搜索查询多个单词

[英]Php Mysql search query with multiple words

I want to search database with maximum 3 words match with multiple fields and i am using given given code: 我想搜索数据库,最多3个字匹配多个字段,我使用给定的给定代码:

$hotel_name=trim($_GET['hotel_src_key']);
$search_type=trim($_GET['hotel_src']);
$pieces = explode(" ", $hotel_name);

//echo $pieces[1]; // piece2

$search1=$pieces[0];
$search2=$pieces[1]; 
$search3=$pieces[2];
echo $search1.$search2.$search3; 

if($search_type=="any hotel")
{
$rest ="WHERE hotel_name like '%$search1%' AND hotel_name like '%$search2%'AND hotel_name like '%$search3%' OR city like '%$search1%' AND city like '%$search2%' AND city like '%$search3%'";
}

if($search_type=="hotel city"){
$rest="WHERE city like '%$search1%' AND city like '%$search2%' AND city like '%$search3%'";
}

if($search_type=="hotel name"){
$rest="WHERE hotel_name like '%$search1%' AND hotel_name like '%$search2%' AND hotel_name like '%$search3%'";
}


$stmt=$connc->query("SELECT * FROM  hotels  $rest ORDER BY h_id ASC");
$rc = $stmt->num_rows;  

But its not working as i want bcoz when i search hotel with keyword "agra jaipur delhi" in (search_type=any hotel) , then results shows 0 但是当我在(search_type=any hotel)关键字"agra jaipur delhi"酒店时,它不能像我想要bcoz一样,结果显示0
how can i fix this issue ? 我该如何解决这个问题?

WHERE hotel_name like :search1 OR hotel_name like :search2 or hotel_name like :search3 

如果您使用的是PDO,请使用准备好的声明http://php.net/manual/en/pdo.prepare.php;如果您使用的是mysqli,请使用http://php.net/manual/en/mysqli.prepare.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM