PHP实现多个关键词查询的方法:1、使用SQL语句中的like子句对数据库的搜索;2、同时搜索多个关键词,使用union子句来将搜索结果合并起来即可。
PHP实现多个关键词查询的方法:
PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。以下代码实现了一个搜索页面。
引用<?php require_once(''Connections/conn.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
{
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]%''";
}
对搜索结果排序执行SQL语句$query_rs .= ") T ORDER BY last_access DESC";
$rs = mysql_query($query_rs, $conn) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$totalRows_rs = mysql_num_rows($rs);
?>
Search当前关键词:
循环显示关键词for($i=0;$i
echo $result[$i]." ";
}
?>
<?php if($totalRows_rs>0) do { //显示当前搜索结果 ?>
* <?php echo $row_rs[''title'']; ?>(<?php echo
$row_rs[''click'']; ?> | <?php echo $row_rs[''last_access'']; ?>)
mysql_free_result($rs);
?>