| 收藏本站 | 关于我们
首页 免费模板 收费模板 部分案例 分类模板 地方门户 二次修改 服务定制 酷站欣赏 设计学院 特效代码 字体下载
当前位置:首页 >> 二次修改
php168 多关键字搜索的修改窍门
发布时间:2010-11-27 21:19:53
标签Tags:php168 关键字 搜索
编辑发布:飞将军

简单制作个后台主页标签来说明一下如图:
1.jpg 

 
制作个标签,从后台随便标签位置添加都可以标签代码
<table width="100%" cellpadding="0" cellspacing="0" border="0">
  <form name="formsearch" method="post" action="http://www.qibomb.com/do/search.php">
    <tr>
      <td height="14"> 标题:<input type="text" name="keyword" size="10">
       关键字:<input type="text" name="keyword1" size="10">
        <input type="submit" name="Submit32" value="搜索">
        <input type="hidden" name="searchTable" value="article">
      </td>
    </tr>
  
  </form>
</table> 
 

然后针对/do/search.php进行修改
从10行到14行
if( ($_GET[type]||$_POST[type]) && !($keyword||$keyword1) ) //没写入任何搜索字段时执行它
{
 showerr("关键字不能为空");
}
 

17行
if( $_GET[keyword] || $_POST[keyword] || $keyword1 )//如果填写标题或关键词的任意一个的时候从这里开始执行,这里$_POST[keyword] 和$keyword1是对应表单写法不同判断效率是一样的,把$_POST[keyword]改成$keyword也是可以的,但可能会影响到独立搜索页
 

然后进入if语句我们看到从24行开始有一段代码 
[code]if(!$type)
 {
  $type='title';
 }
 

我们回过来看一下我们制作的表单,它发送的值中没有$type对应的值,所以$type是空的,执行此段之后,$type=='title'
好啦,那我们就开始往下找,找到
elseif($type=='title') //因为$type=='title'满足条件,务必执行此段代码,很显然从这段代码下手
 {
  $SQL.=" AND BINARY A.title LIKE '%$keyword%' ";
}
 

修改成以下代码
elseif($type=='title')
 {
  $SQL.=" AND BINARY A.title LIKE '%$keyword%' "; //这个就不用多讲了,就是对标题模糊查询
  if($keyword1)
  {
   //echo 'test';exit;
   unset($array);//清空数据
   $query = $db->query("SELECT B.aid FROM {$pre}keywordid B LEFT JOIN {$pre}keyword A ON A.id=B.id WHERE A.keywords='$keyword1'");
  //上面这一行乍一看感觉一头雾水,没关系哥也是猜测不是很理解,大概意思从p8_keywordid表里获取符合$keyword1的文章id。从上一个elseif中抄袭的[s:29]  
  //p8文章模型关联各种数据表,挺复杂的,如果你把这些数据表都理清了,你就[s:30]  很NB了
   while($rs = $db->fetch_array($query)){
    $array[]=$rs[aid];//对应文章aid放到$array数组
   }
   if($array){
    $SQL.=" AND A.aid IN (".implode(',',$array).") "; //把$array的数据用逗号分隔放到一个字符串,然后关联文章aid来查找
   }else{
    $SQL.=" AND 0 "; //没找到关键词
   }
  }
 } 
 

请替换do/search.php文件别忘了备份

 

点击率:2756
相关文章
网页特效代码
 服务流程 | 积分说明 | 使用说明 | 粤ICP备17004399号 电视直播 | QQ头像获取