php搜索
A. php站內搜索怎麼做
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl執行phpize生成編譯文件!
phpize在PHP安裝目錄的bin目錄/usr/local/php5/bin/phpize運行時,
可能會報錯:Cannot find autoconf. Please check your autoconf installation andthe $PHP_AUTOCONFenvironment variable is set correctly and then rerun thisscript.,需要安裝autoconf:yum install autoconf(RedHat或者CentOS)、apt-get installautoconf(Ubuntu Linux)!
執行/usr/local/php5/bin/php -v這個命令時,php會去檢查配置文件是否正確,
如果有配置錯誤,這里會報錯,可以根據錯誤信息去排查!
B. 如何在php網頁中加入搜索框
把文本框的值傳進來,然後利用sql語句中的like模糊查詢。
如 sql="select * from news where title like '%"&request("title")&"%'"
樓主在查詢的時候還要注意過濾空格和單引號等。。
下面這文章是介紹ASP做查詢功能,樓主可以看一下。
詳見:
面是庫中URLINDEX表:URL和Keywords欄位分別添加了索引.
URL 文本 (索引:有(無重復))
Title 文本
Description 文本
Summary 文本
Keywords 文本(索引:有(無重復))
p
<HTML><HEAD><TITLE>簡單搜索引擎</TITLE></HEAD>
<BODY BGCOLOR=#ffffff MARGINWIDTH="0" MARGINHEIGHT="0"
LEFTMARGIN=0 TOPMARGIN=0>
<FORM METHOD="po...
C. PHP如何實現模糊搜索
mysql支持自然語言的全文搜索
對於欄位的要求:
只能是CHAR, VARCHAR, 或 TEXT 類型的欄位
表類型是MyISAM在表建好,並導入數據後,建立一個fulltext index(索引)
用法:
select 欄位1,欄位2,欄位3, MATCH(要匹配的欄位名) AGAINST('keyword') as score from table having score>0命中的每一行都會有個分數,分數越大表示結果越接近keyword,分數越低的就是越模糊的結果
D. php程序中的搜索功能
首先處理復選框<input name="qzz" type="checkbox" value="qzz" />
不能全部的value="qzz",否則同一個值就沒法區分了,因此整理一下例如用數字表示:
<input name="qzz" type="checkbox" value="1" /> 去除雜質
<input name="qzz" type="checkbox" value="2" /> 分級
<input name="qzz" type="checkbox" value="3" /> 過濾
……
一點這些值要能CP表中的mudi對應,比如mudi的表的值是這樣的
a 表示 去除雜質
b 表示 分級
c 表示 過濾
……
那麼在寫PHP時就可以這樣處理
$mudiArray=$_POST['qzz'];
//當然我不input的設置和資料庫設置一致的話,就可以不用下面的這個轉化了
//頁面input和數據欄位值之間的轉化
foreach($mudiArray as $key=>$value){
switch($value) {
case '1':
$mudiArray[$key]='a';
case '2':
$mudiArray[$key]='b';
case '3':
$mudiArray[$key]='c';
……
}
}
具體SQL:
$mudis = "'" . implode("','", $mudiArray). "'";
$sql = "select * from CP where mudi in(" .$mudis .")";
E. PHP或者搜索關鍵字的問題
還是直接寫 like %keyword1% or like %keyword2% or like %keyword3% 這樣吧
F. 關於搜索功能那個php代碼,能再詳細點嗎
資料庫(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。
G. php多條件復合搜索怎麼做到
這個用腳本來做更簡單些,不用分多次往a.php傳參。傳一次就行了。
<!--HTML START-->
<!--函數參數推薦寫數字,既對應「摩托羅拉」的id,但由於這里你沒給出,我索性寫上漢字了-->
<a href="javescript:set_made('摩托羅拉')">摩托羅拉</a>
<a href="javescript:set_made('諾基亞')">諾基亞</a>
<a href="javescript:set_made('蘋果')">蘋果</a>
<a href="javescript:set_price('1000-2000')">1000-2000元</a>
<a href="javescript:set_price('2000-3000')">2000-3000元</a>
<a href="javescript:set_price('3000-5000')">3000-5000元</a>
<a href="javescript:set_os('android系統')">android系統</a>
<a href="javescript:set_os('塞班系統')">塞班系統</a>
<a href="javescript:set_os('蘋果系統')">蘋果系統</a>
<!--這里的表單隱藏域,只顯示一個搜索按鈕-->
<form action='' method='post'>
<input id='made' name='made' type='hidden' value='<?php echo $_POST['made'] ?>'/>
<input id='price' name='price' type='hidden' value='<?php echo $_POST['price'] ?>'/>
<input id='os' name='os' type='hidden' value='<?php echo $_POST['os'] ?>'/>
<input type='submit' value = '搜索'/>
</form>
<!--HTML END-->
<!--SCRIPT START-->
<script>
/* @Tips : 這段JS代碼可以放到單獨的JS文件中去,也可以直接寫到head里,隨你。
* @Purpose : 這里幾個函數分別是把隱藏域中的made、price、os設置成對應的值,點擊鏈接時觸發
* @Method : set_made,set_price,set_os
* @Param : str 字元串或者數字,請根據你的需要來決定
* @Return : NULL
*/
function set_made (str) {
document.getElementById('made').value = str;
}
function set_price (str) {
document.getElementById('price').value = str;
}
function set_os (str) {
document.getElementById('os').value = str;
}
</script>
<!--SCRIPT END-->
至於函數參數里你是要添ID 還是添漢字,自己改就行了。
還有你說的那個變色的問題,也不難做,但代碼有點長,我懶得寫了……
就跟你說一下方法:
首先你要給這幾個<a>標簽做個CSS類名,比如<a class='test'>,這個test可以不寫,主要是用來區別頁面其它的<a>標簽。當然不寫也沒關系,只是會讓JS腳本稍慢一點。
然後用document.getElementByTageName('a'),獲取頁面中所有的<a>標簽。做個循環,把class不是test的過濾掉,再用他們的innerHTML屬性與made、price、os的value屬性分別比較,如果是一樣的話,就改變它的背景顏色。
H. 求一個php搜索全站的代碼
最簡單的
1.表單提交關鍵詞獲得$keyword = $_POST['keyword'];
$query= mysql_query("SELECT * FROM `XXX` WHERE `title` LIKE '%$keyword %' LIMIT $offset,$perpage");
2.分頁代碼就不給你打上了,特么的長。。簡寫一下思路
LIMIT $offset,$perpage
$offset 是分頁的偏移量 計算格式是 $perpage * ($cur_page - 1);
每頁顯示記錄數 X (當前頁 - 1)
$perpage 是每頁顯示的記錄數
在你的分頁代碼里做好,傳給LIMIT 直接sql搜索就行了。
3.搜索出來的內容這里定義為 $result
$result = array();
while($rows = mysql_fetch_assoc($query))
{
//將結果集title中的關鍵詞標紅
$newTitle = str_replace($keyword, '<font color=red>'.$keyword.'</font>',$rows['title']);
$result['title'] = $newTitle;
}
這樣就得到了加紅過的搜索的內容標題。純手打望採納,如果可用記得加分哦,不懂的可以追問了
I. PHP中怎麼實現關鍵字搜索
PHP要實現關鍵字查搜索,需要用到like關鍵字來組合查詢條件
like具體實現方法如下:
例一:
1$userForm=M('user');
1$where['name']=array('like','phpernote%');
2$userForm->where($where)->select();
這里的like查詢即為:name like 'phpernote%'
例二:
1$where['name']=array('like',array('%phpernote%','%.com'),'OR');
這里的like查詢即為:name like '%phpernote%' or name like '%.com'
例三:
1$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'phpernote','or');
這里的like查詢即為:(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'phpernote')
例四:
1$where['_string']='(namelike"%phpernote%")OR(titlelike"%phpernote")'
這里的like查詢即為:name like '%phpernote%' or title like '%phpernote'
J. PHP搜索怎麼做
php中要查詢mysql資料庫中的內容必須先連接mysql資料庫,然後再利用sql語句進行查詢
SELECT 語句用於從資料庫中選取所要搜索的數據。
具體用法為:
語句1:SELECT*FROMtable_name
解說:意思就是讀取整個表table_name裡面的數據顯示出來
語句1:SELECT*FROMtable_nameWherex=1
解說:意思就是讀取表table_name裡面鍵名為:x值為:1的數據顯示出來
Select 查詢語句的例子
下面的例子選取存儲在 "Persons" 表中的所有數據(* 字元選取表中所有數據):
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
$result=mysql_query("SELECT*FROMPersons");
while($row=mysql_fetch_array($result))
{
echo$row['FirstName']."".$row['LastName'];
echo"<br/>";
}
mysql_close($con);
?>
上面這個例子在 $result 變數中存放由 mysql_query() 函數返回的數據。接下來,使用
mysql_fetch_array() 函數以數組的形式從記錄集返回第一行。每個隨後對 mysql_fetch_array()
函數的調用都會返回記錄集中的下一行。 while loop 語句會循環記錄集中的所有記錄。為了輸出每行的值,使用了 PHP 的 $row
變數 ($row['FirstName'] 和 $row['LastName'])。
以上代碼的輸出:
PeterGriffin
GlennQuagmire