多个关键词排序,多关键词站内搜索怎么做
多个关键词排序,多关键词站内搜索怎么做? 我们做网页时。某一个页面有多个关键词。要搜索相关的文章时怎么办?
多个关键词排序,多关键词站内搜索怎么做?我们做网页时。某一个页面有多个关键词。要搜索相关的文章时怎么办?
PHP搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。
搜索效果如下
/https://www.ew35.com/article_26479.html 模板:article/article.html <!--代码如下--> {if($article['tags'])} <?php $tags = explode(',',$article['tags']); $sql = []; foreach($tags as $v){ $sql[]=" title like '%".$v."%' "; $sql[]=" keywords like '%".$v."%' "; } $tagslist = syDB('article')->findAll(implode(' or ',$sql),null,null,12); ?> {foreach $tagslist as $v} <?php $v['url'] = html_url('article',$v); ?> <li><a title="{$v['title']}" href=" 'url']}">{fun newstr($v['title'],38)} <span>阅读:{$v['hits']} </span></ a></li> {/foreach} {/if}
//分解用户输入的多个关键词,存入$result数组 $result = explode('','',$_GET['key']); $mysql_server="localhost"; $mysql_username="数据库用户名"; $mysql_password="数据库密码"; $database_conn="数据库名"; //建立数据库链接 $conn = mysql_connect($mysql_server,$mysql_username,$mysql_password); //选择某个数据库 mysql_select_db($database_conn, $conn); //根据多个关键词构建SQL语句 $query_rs = "SELECT * FROM ("; //根据每个搜索关键词构建SQL语句 for($i=0;$i<count($result);$i++) { //对第一个关键词,不使用UNION if($i==0) { $query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''%$result[0]%''OR content LIKE ''%$result[0]%''"; }else{ //对其他关键词,使用UNION连接 $query_rs .= " UNION SELECT * FROM searchtable WHERE title LIKE''%$result[$i]%'' OR content LIKE ''%$result[$i]%''"; } //对搜索结果排序 $query_rs .= ") T ORDER BY last_access DESC"; //执行SQL语句 $rs = mysql_query($query_rs, $conn) or die(mysql_error()); $row_rs = mysql_fetch_assoc($rs); $totalRows_rs = mysql_num_rows($rs); }
版权所有:深圳市网商在线科技有限公司
友情链接: