加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现多个关键词搜索查询功能案例

发布时间:2023-09-25 14:49:14 所属栏目:PHP教程 来源:
导读:本文实例讲述了PHP实现多个关键词搜索查询功能。分享给大家供大家参考,具体如下:

PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来
本文实例讲述了PHP实现多个关键词搜索查询功能。分享给大家供大家参考,具体如下:

PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。以下代码实现了一个搜索页面。

引用:

<?php require_once(''Connections/conn.php''); ?> 
<?php 
$colname_rs = $_GET[''key'']; //获得用户输入 
$result = explode('','',$_GET[''key'']);//分解用户输入的多个关键词,存入$result数组 
mysql_select_db($database_conn, $conn); //连接数据库 
//根据多个关键词构建SQL语句 
$query_rs = "SELECT * FROM ("; 
for($i=0;$i<count($result);$i++) //根据每个搜索关键词构建SQL语句 

if($i==0) //对第一个关键词,不使用UNION 
$query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''%$result[0]%'' 
OR content LIKE ''%$result[0]%''"; 
else //对其他关键词,使用UNION连接 
$query_rs .= " UNION SELECT * FROM searchtable WHERE title LIKE 
''%$result[$i]%'' OR content LIKE ''%$result[$i]%''"; 

$query_rs .= ") T ORDER BY last_access DESC"; //对搜索结果排序 
//执行SQL语句 
$rs = mysql_query($query_rs, $conn) or die(mysql_error()); 
$row_rs = mysql_fetch_assoc($rs); 
$totalRows_rs = mysql_num_rows($rs); 
?> 
<html> 
<head> 
<title>Search</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 
<body> 
<form name="form1" method="get" action="?"> 
<div align="center">请输入要搜索关键词: 
<input name="key" type="text" size="64" value="<?php echo $_GET[''key''] ?>"> 
<input type="submit" value="Submit"> 
</div> 
</form> 
<p align="center"><B>当前关键词: 
<?php 
for($i=0;$i<count($result);$i++) { //循环显示关键词 
echo $result[$i]." "; 

?></B></p> 
<p><hr></p> 
<?php if($totalRows_rs>0) do { //显示当前搜索结果 ?> 
<p>* <a href="show.php?key=<?php echo $colname_rs ?>&id=<?php echo 
$row_rs[''id'']; ?>"><?php echo $row_rs[''title'']; ?></a>(<?php echo 
$row_rs[''click'']; ?> | <?php echo $row_rs[''last_access'']; ?>)</p> 
<?php } while ($row_rs = mysql_fetch_assoc($rs)); ?> 
</body> //Cuoxin.com 
</html> 
<?php 
mysql_free_result($rs); 
?> 
这里,在页面上可以使用英文逗号“,”来实现多个关键词的搜索。这里,仍然将与数据库的连接放到一个专门的PHP文件中以方便后期的修改。

 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章