PHP文本数据库的搜索方法
创新互联建站服务项目包括宜良网站建设、宜良网站制作、宜良网页制作以及宜良网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,宜良网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到宜良省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
searchstr=("/".preg_quote($searchstr)."/");
//$searchstr是查找的关键字
$records=file($file);//获取所有的记录数
//$file是查找的数据文件
$search_reocrds=preg_grep
($searchstr,
$records);//开始查找记录
//$search_reocrds为查找到的记录数
unset($records);
if($search_records){
//开始显示记录,写下你自己的处理程序********************
while
(list
($key,
$val)
=
each
(
$search_records))
{
echo
"$val
";
}
//****************************************************
}
站内搜索是一种使用关键字来搜索文章标题的功能。
PHP的站内搜索可以使用SELECT和LIKE语句来对文章的标题进行过滤选择,将需要的数据筛选出来。 如果有多个筛选可以使用AND语句连接起来进行多条语句筛选。 如果希望是能搜索到全站所有的数据,一般在数据库设计之初最好就是把所有数据放一个表,然后通过扩展表的方式进行数据扩展!具体方法可以参考ONETHINK的设计模式。
具体搜索方法: SELECT * FROM 表名 WHERE 字段 LIKE '%关键字%'
数据库(mysql):一个数据库(search),库里面一个表(title),表里面一个字段(name).
PHP页面:两个页面(index.php
search.php)
第一步.创建数据库.(目前大家应该都是用的phpmyadmin来操作数据库的吧?)
建立一个数据库.
第二步.建表
在刚建立的search数据库里插入一个名字为title的表.建表时让选插入几个字段.写1就可以了.
第三步.建字段
插入的字段命名为name,长度值20就可以了.
—–数据库部分已经做完,接下来是网页部分—–
第四步.建立两个页面
建立两个文件:index.php和search.php可以使用记事本等文本工具直接建立.我使用的工具是Dreamweaver(方便嘛.呵呵).
第五步.index.php的页面制作.
这个页面是用来传递你搜索的关键字的.代码如下:
form method=”post”
action=”search.php”
name=”search”
input name=”search” type=”text” value=”"
size=”15″ input type=”submit”
value=”Search”
/form
这段代码是建立一个FORM表单.专门用来提交数据的.
第一行是FORM表单的开始.它的传递方式是post,传递到search.php这个页面.表单名为name.
第二行是文本域和提交按钮.文本域命名为search,按钮默认就可以了.
第三行是FORM表单的结束语句.
第五步.search.php的页面制作.
这个页面很关键.因为他是获取index页面传递过来的值,然后导出搜索的数据.
首先要绑定你建立的search数据库,我用的DW生成的.
上一个页面传送的文本域是search.所以,这里需要建立一个search变量.来接收你输入的关键词.用以下语句定义变量:
?php
$searchs = $_POST['search'];
?
然后建立一个记录集,选择高级.SQL语句中填写:
SELECT *
FROM title
WHERE name like
‘%$searchs%’
这句的意思是选择title表里面的所有字段(*),然后查询name中的$searchs变量。这个变量也就是你在index中输入的值啦。
然后在BODY里面绑定一个动态文本。选择NAME。
通过from表单,将查询的关键词,通过 like 跟数据进行模糊查询对比\x0d\x0a从topics表中查询字段subject与传进来的参数'$_POST['topic']进行比较模糊查询\x0d\x0a设subject字段数据为:数学,英语,物理,化学,英文\x0d\x0a$subject=$_POST['topic']; \x0d\x0a$sql = "select * from topics where subject like '%" .$subject. "%'";\x0d\x0a$result = mysql_query($sql);\x0d\x0a若从表单提交的‘topic’值为“学”,得到的结果将是:数学,化学\x0d\x0a多个字段匹配查询:\x0d\x0a$sql = "select id,subject from topics where (id like '%" .$id. "%') or (name like '%" .$name. "%') or (subject like '%" .$subject. "%') order by id desc";\x0d\x0a结果依据字段id的顺序
1.假设前台页面有一个文章的标题input type="text" name="title"/
2.数据库表article结构为id int primary key auto_increment, title varchar(20) not null
3.假设title已插入数据库,我们现在要做的是根据search搜索框input type="text" name="search"/的文字,把数据从数据库查询并显示到前台界面
$search = $_POST['search'];
/*
编辑sql语句(采用模糊查询%通配符)
*/
$sql = "select * from article where title like '%{$search}%'";
if($res=mysql_query($sql) mysql_affected_rows() 0){
/*
取出数据
*/
$row = mysql_fetch_array($res);
}
4.显示数据
假设这是要显示的title数据所在的div
div?php echo $row['title'] ?/div
先读取文本文件啊,在文本文件中搜索,如果文本较小的话可以直接用函数查找