php+mysql開發站內搜索+最近搜索+最近熱搜!

一、經過php查詢mysql數據庫的關鍵詞,用%$_POST[keyword]%實現關鍵詞搜索
二、每次搜索關鍵詞,都把該關鍵詞插入數據庫的keywords字段作記錄,而後查詢keywords全部記錄並輸出,便可實現最近搜索的關鍵詞功能
三、計算keywords裏全部重複字段並排序,輸出前5個最多人搜索的關鍵詞,便可實現最近熱搜javascript

sou.php ,這是表單提交頁面+最近搜索,最近熱搜關鍵詞輸出頁面。php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
  $("p").toggle();
  });
});
</script>

<style type="text/css">
button{
    background: none;
    border:none;
}
</style>
</head>
<body>
<button type="button">
<form action="do.php" method="post">
<input type="text" name="keyword" >
<input type="submit" name="btn" VALUE="搜索">
</form>
</button>
<h2 style="color:#f00;">最近搜索</h2>
<?php
header("Content-type:text/html;charset=utf-8");
//鏈接數據庫
$con = mysql_connect("localhost","root","root");
if (!$con)
  {
  die('鏈接數據庫失敗,失敗緣由:' . mysql_error());
  }

//設置數據庫字符集  
mysql_query("SET NAMES UTF8");
//查詢數據庫
mysql_select_db("test", $con);
//查詢最新10條數據
$result = mysql_query("SELECT * FROM sou ORDER BY id DESC LIMIT 0,10");

//輸出
while($row = mysql_fetch_array($result))
{
echo "<p>" . $row['keywords'] . "</p>";
}


echo "<h2 style='color:#f00;'>最近熱搜</h2>";
//查詢搜索次數最多的5條數據
$result = mysql_query("SELECT keywords, count(*) as sum FROM sou group by keywords Order By sum DESC LIMIT 0,6");

//輸出
while($row = mysql_fetch_array($result))
{
echo "<p>" . $row['keywords'] . "</p>";
}


//關閉鏈接
mysql_close($con);
?>

</body>
</html>

clipboard.png

do.php 爲表單接收,處理,驗證頁面。css

<?php
header("Content-type:text/html;charset=utf-8");
$keyword = $_POST["keyword"]; 
if($keyword == "")
{  
echo "<script>alert('請不要留空!'); history.go(-1);</script>";  
}  
else{
//鏈接數據庫
$con = mysql_connect("localhost","root","root");
if (!$con)
  {
  die('鏈接數據庫失敗,失敗緣由:' . mysql_error());
  }

//設置數據庫字符集  
mysql_query("SET NAMES UTF8");
//查詢數據庫
mysql_select_db("test", $con);

//查詢數據
$result = mysql_query("SELECT * FROM sou where title like '%$_POST[keyword]%'");
$num = mysql_num_rows($result); 
if($num)    //若是已經存在
{

    //輸出
while($row = mysql_fetch_array($result))
{
echo "<p>" . $row['title'] . "</p>";
}

}  
else{
echo "暫無資源!";
}

//插入數據
$conn = mysql_query("INSERT INTO sou (keywords) 
VALUES ('$_POST[keyword]')");

//關閉鏈接
mysql_close($con);
}
?>

思路很簡單,我已經將代碼和數據庫表打包好,本身下載後在本地服務器測試一下,大神可繼續完善一下,也能夠直接用在項目裏。html

數據庫已有字段,也就是搜索這些字段是有結果的,若是搜索其它不存在的字段,就會echo "暫無資源!"java

clipboard.png

代碼包,點擊下載mysql

這個功能我已經在個人項目中用上來了,點擊預覽項目jquery

相關文章
相關標籤/搜索