我有像“销售和业务发展经理”这样的职位。 当我搜索这个单词时我想要这样的结果:
条件1:首先显示完整的搜索词作业标题结果。
条件2:显示3个单词组合结果作为第二优先级。
条件3:将2个单词组合结果显示为第3个优先级
如何在php mysql中实现这个逻辑。以及如何根据条件订购结果数据
我试过这个
$str='Sales and Business Development Manager';
$arr=explode(" ",$str);
$cnt=count($arr);
$search1=" where job title like '%$str%'";
if($cnt>3)
{
$word1=$arr[0]." ".$arr[1]." ".$arr[2];
$word2=$arr[1]." ".$arr[2]." ".$arr[3];
$word3=$arr[2]." ".$arr[3]." ".$arr[0];
$word4=$arr[3]." ".$arr[0]." ".$arr[1];
$word5=$arr[2]." ".$arr[0]." ".$arr[1];
$word6=$arr[1]." ".$arr[0]." ".$arr[2];
$search2.=" or job title like '%$word1%" or job title like '%$word2%' or job title like '%$word3%' or job title like '%$word4%' or job title like '%$word5%';
}
$qry=mysql_query("select * from jobs $search1 $search2");
我也在使用全文搜索。 请告诉我如何实现这种逻辑。根据搜索词搜索和订购数据。
答案 0 :(得分:0)
你可以试试这个。我已在我给出的示例代码中添加了一些注释。
<强>代码:强>
$str='Sales and Business Development Manager';
$arr=explode(" ",$str);
$cnt=count($arr);
$search1=" WHERE job title LIKE '%$str%'"; /* SHOULD FIX THAT job title COLUMN NAME */
$search2="";
for($x=0;$x<=$cnt;$x++){ /* LOOP THE RESULT OF THE EXPLODE */
$search2=$search2." OR title LIKE '%".$arr[$x]."%'"; /* PUT THEM ALL TOGETHER IN A SINGLE VARIABLE */
}
$qry=mysql_query("SELECT * FROM jobs $search1 $search2"); /* YOUR QUERY */
<强>注释:强>
job title
列名称。