php+mysql开发站内搜索+最近搜索+最近热搜

2021/5/23 19:28:27

本文主要是介绍php+mysql开发站内搜索+最近搜索+最近热搜,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

实际应用项目:http://github.crmeb.net/u/long

1、通过php查询mysql数据库的关键词,用%$_POST[keyword]%实现关键词搜索
2、每次搜索关键词,都把该关键词插入数据库的keywords字段做记录,然后查询keywords所有记录并输出,即可实现最近搜索的关键词功能
3、计算keywords里所有重复字段并排序,输出前5个最多人搜索的关键词,即可实现最近热搜

sou.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>

do.php 为表单接收,处理,验证页面。

<?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);
}
?>

数据库已有字段,也就是搜索这些字段是有结果的,如果搜索其它不存在的字段,就会echo "暂无资源!"



这篇关于php+mysql开发站内搜索+最近搜索+最近热搜的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程