社会专题
靓丽女人 黑白社会 硬件网络 天下军事 教育咨询 星新一代 汽车电子 幽默笑话 农村特色 有书有道 软件技术 玄幻奇幻 办公达人 便民服务 免费资源 代码效果 美文园地 寻医问药 健康保健 时尚酷玩 天文地理 科技科幻 美食天下 游山玩水 历史天空 制作教程
FLASH频道
女生游戏 益智游戏 有声艺术 有声故事 电脑运用 休闲游戏 MTV类 运动游戏
聚划算
商旅游玩 装潢装饰 家电家具 服装服饰 健康保健 二手特色 生活必备 数码产品
映讯频道
喜剧片 国内片 情感片 动作片 战争片 纪录之窗 欧美剧集 明星云集 动漫片 港澳台剧 大陆剧 科幻片 恐怖片 浓缩电影 教育教学 艺术无界 一技之长 邻国热剧
下载中心
音体美合 信息社政 英语外语 科学自然 常用软件 语文数学 手机软件 红绿软件
图片中心
制作美图 生活图片 美女欣赏 实物图片 艺术欣赏 风景欣赏
领券购
热销女装 热血男装 生活必须 电子电器 手机电脑 旅游出行 学习艺术 吃货优选
新闻中心
一语惊人 奇闻趣事 热点专栏 曝光台 消费警示 今日观察 IT业界 消费主张 动态备忘 专利之窗
关闭
当前位置:首页社会专题硬件网络
php168 多关键字搜索的修改窍门

以下是引用片段:

制作个标签,从后台随便标签位置添加都可以标签代码

<table wiidth="100%" cellpadding="0" cellspacing="0" border="0">

<form name="formsearch" method="post" action="http://www.qibomb.com/do/search.php">

<tr>

<td heiight="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文件别忘了备份

提示:输入修改代码都可运行!
2
酒精度
78
顶一下
相关阅读
内容加载中……