php搜索代碼
1. 求高人給一個用php+Mysql實現的簡單的資料庫查詢代碼
為了實現一個簡單的PHP+MySQL資料庫查詢,首先需要創建一個查詢表單。這個表單可以用來接收用戶輸入的查詢條件。在HTML中,可以使用如下的代碼片段來創建查詢表單:
<form action="search.php" method="post">
<input type="text" name="searchTerm" placeholder="請輸入查詢條件" required>
<input type="submit" value="搜索">
</form>
當用戶提交表單後,數據會被發送到`search.php`文件進行處理。在`search.php`文件中,需要連接資料庫並執行查詢操作。以下是一個基本的代碼示例:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("連接失敗: " . $conn->connect_error);
}
$searchTerm = $_POST['searchTerm'];
$sql = "SELECT title FROM table_name WHERE column_name LIKE '%$searchTerm%'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 輸出數據
while($row = $result->fetch_assoc()) {
echo "<p>" . $row["title"] . "</p>";
}
} else {
echo "0 結果";
}
$conn->close();
?>
在查詢結果頁面中,可以展示查詢結果的分頁信息。例如,以下代碼片段可以用來顯示分頁導航:
<p>共有<?php echo $pages; ?>頁(<?php echo $page; ?>/<?php echo $pages; ?>)</p>
<ul>
<?php for ($i=1;$i<$page;$i++) echo "<li>[" . $i . "]</li>"; ?>
<li>[<?php echo $page; ?>]</li>
<?php for ($i=$page+1;$i<=$pages;$i++) echo "<li>[" . $i . "]</li>"; ?>
</ul>
這樣,用戶就可以通過點擊分頁按鈕來查看不同頁的數據。需要注意的是,這里的代碼需要根據實際的資料庫配置、表結構和欄位名稱進行相應的調整。
2. 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會去檢查配置文件是否正確,
如果有配置錯誤,這里會報錯,可以根據錯誤信息去排查!
3. PHP實現搜索查詢功能的方法技巧
下面是首頁顯示數據表package中的內容,但是有個條件,顯示在首頁的內容還必須是 :欄位status=0,且printing=0的數據才能在首頁列表中顯示出來。
頁面上有一個“搜索”功能,輸入條件後就會根據條件來進行查詢。
一般的搜索的話,只要在首頁顯示列表方法index()中給一個:
?
$map=array();//初始化查詢條件
$map=$this->_search();//調用查詢方法
$total = $this->Model->where ($map)->count(); //這個主要是用來計算頁面顯示數據條數的
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
然後,就是寫一個_search():
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
);
}
return $map;
}
最後,在設置的“搜索”菜單中,調用這個搜索方法。
但是,這個搜索的.同時,還要確保在欄位status=0,且printing=0的數據中進行搜索。
這個限制條件該加在什麼地方。各種嘗試和查詢後,才知道。限制條件直接加在SQL語句中就行了(如下紅色的地方)。(我自己試的時候一直在如下藍色的地方加條件,屢試屢敗!)
$map=array();
$map=$this->_search();
$total = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->count();
if ($total == 0) {
$_list = '';
} else {
$_list = $this->Model->where ($map)->where(array('status' =>0,'print_status'=>0))->limit( $post_data ['first'] . ',' . $post_data ['rows'] )->select();
}
更多相關文章推薦:
4. 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屬性分別比較,如果是一樣的話,就改變它的背景顏色。