简单制作个后台主页标签来说明一下如图:
制作个标签,从后台随便标签位置添加都可以标签代码
<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文件别忘了备份