PHP文本數(shù)據(jù)庫(kù)的搜索方法
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括宜良網(wǎng)站建設(shè)、宜良網(wǎng)站制作、宜良網(wǎng)頁(yè)制作以及宜良網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,宜良網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到宜良省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
searchstr=("/".preg_quote($searchstr)."/");
//$searchstr是查找的關(guān)鍵字
$records=file($file);//獲取所有的記錄數(shù)
//$file是查找的數(shù)據(jù)文件
$search_reocrds=preg_grep
($searchstr,
$records);//開(kāi)始查找記錄
//$search_reocrds為查找到的記錄數(shù)
unset($records);
if($search_records){
//開(kāi)始顯示記錄,寫(xiě)下你自己的處理程序********************
while
(list
($key,
$val)
=
each
(
$search_records))
{
echo
"$val
";
}
//****************************************************
}
站內(nèi)搜索是一種使用關(guān)鍵字來(lái)搜索文章標(biāo)題的功能。
PHP的站內(nèi)搜索可以使用SELECT和LIKE語(yǔ)句來(lái)對(duì)文章的標(biāo)題進(jìn)行過(guò)濾選擇,將需要的數(shù)據(jù)篩選出來(lái)。 如果有多個(gè)篩選可以使用AND語(yǔ)句連接起來(lái)進(jìn)行多條語(yǔ)句篩選。 如果希望是能搜索到全站所有的數(shù)據(jù),一般在數(shù)據(jù)庫(kù)設(shè)計(jì)之初最好就是把所有數(shù)據(jù)放一個(gè)表,然后通過(guò)擴(kuò)展表的方式進(jìn)行數(shù)據(jù)擴(kuò)展!具體方法可以參考ONETHINK的設(shè)計(jì)模式。
具體搜索方法: SELECT * FROM 表名 WHERE 字段 LIKE '%關(guān)鍵字%'
數(shù)據(jù)庫(kù)(mysql):一個(gè)數(shù)據(jù)庫(kù)(search),庫(kù)里面一個(gè)表(title),表里面一個(gè)字段(name).
PHP頁(yè)面:兩個(gè)頁(yè)面(index.php
search.php)
第一步.創(chuàng)建數(shù)據(jù)庫(kù).(目前大家應(yīng)該都是用的phpmyadmin來(lái)操作數(shù)據(jù)庫(kù)的吧?)
建立一個(gè)數(shù)據(jù)庫(kù).
第二步.建表
在剛建立的search數(shù)據(jù)庫(kù)里插入一個(gè)名字為title的表.建表時(shí)讓選插入幾個(gè)字段.寫(xiě)1就可以了.
第三步.建字段
插入的字段命名為name,長(zhǎng)度值20就可以了.
—–數(shù)據(jù)庫(kù)部分已經(jīng)做完,接下來(lái)是網(wǎng)頁(yè)部分—–
第四步.建立兩個(gè)頁(yè)面
建立兩個(gè)文件:index.php和search.php可以使用記事本等文本工具直接建立.我使用的工具是Dreamweaver(方便嘛.呵呵).
第五步.index.php的頁(yè)面制作.
這個(gè)頁(yè)面是用來(lái)傳遞你搜索的關(guān)鍵字的.代碼如下:
form method=”post”
action=”search.php”
name=”search”
input name=”search” type=”text” value=”"
size=”15″ input type=”submit”
value=”Search”
/form
這段代碼是建立一個(gè)FORM表單.專門(mén)用來(lái)提交數(shù)據(jù)的.
第一行是FORM表單的開(kāi)始.它的傳遞方式是post,傳遞到search.php這個(gè)頁(yè)面.表單名為name.
第二行是文本域和提交按鈕.文本域命名為search,按鈕默認(rèn)就可以了.
第三行是FORM表單的結(jié)束語(yǔ)句.
第五步.search.php的頁(yè)面制作.
這個(gè)頁(yè)面很關(guān)鍵.因?yàn)樗谦@取index頁(yè)面?zhèn)鬟f過(guò)來(lái)的值,然后導(dǎo)出搜索的數(shù)據(jù).
首先要綁定你建立的search數(shù)據(jù)庫(kù),我用的DW生成的.
上一個(gè)頁(yè)面?zhèn)魉偷奈谋居蚴莝earch.所以,這里需要建立一個(gè)search變量.來(lái)接收你輸入的關(guān)鍵詞.用以下語(yǔ)句定義變量:
?php
$searchs = $_POST['search'];
?
然后建立一個(gè)記錄集,選擇高級(jí).SQL語(yǔ)句中填寫(xiě):
SELECT *
FROM title
WHERE name like
‘%$searchs%’
這句的意思是選擇title表里面的所有字段(*),然后查詢name中的$searchs變量。這個(gè)變量也就是你在index中輸入的值啦。
然后在BODY里面綁定一個(gè)動(dòng)態(tài)文本。選擇NAME。
通過(guò)from表單,將查詢的關(guān)鍵詞,通過(guò) like 跟數(shù)據(jù)進(jìn)行模糊查詢對(duì)比\x0d\x0a從topics表中查詢字段subject與傳進(jìn)來(lái)的參數(shù)'$_POST['topic']進(jìn)行比較模糊查詢\x0d\x0a設(shè)subject字段數(shù)據(jù)為:數(shù)學(xué),英語(yǔ),物理,化學(xué),英文\x0d\x0a$subject=$_POST['topic']; \x0d\x0a$sql = "select * from topics where subject like '%" .$subject. "%'";\x0d\x0a$result = mysql_query($sql);\x0d\x0a若從表單提交的‘topic’值為“學(xué)”,得到的結(jié)果將是:數(shù)學(xué),化學(xué)\x0d\x0a多個(gè)字段匹配查詢:\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結(jié)果依據(jù)字段id的順序
1.假設(shè)前臺(tái)頁(yè)面有一個(gè)文章的標(biāo)題input type="text" name="title"/
2.數(shù)據(jù)庫(kù)表article結(jié)構(gòu)為id int primary key auto_increment, title varchar(20) not null
3.假設(shè)title已插入數(shù)據(jù)庫(kù),我們現(xiàn)在要做的是根據(jù)search搜索框input type="text" name="search"/的文字,把數(shù)據(jù)從數(shù)據(jù)庫(kù)查詢并顯示到前臺(tái)界面
$search = $_POST['search'];
/*
編輯sql語(yǔ)句(采用模糊查詢%通配符)
*/
$sql = "select * from article where title like '%{$search}%'";
if($res=mysql_query($sql) mysql_affected_rows() 0){
/*
取出數(shù)據(jù)
*/
$row = mysql_fetch_array($res);
}
4.顯示數(shù)據(jù)
假設(shè)這是要顯示的title數(shù)據(jù)所在的div
div?php echo $row['title'] ?/div
先讀取文本文件啊,在文本文件中搜索,如果文本較小的話可以直接用函數(shù)查找