PHP如何实现多个关键词查询?-PHP问题

资源魔 29 0

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]%''";
}

对搜寻后果排序执行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);
?>
<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>
</html>
<?php
mysql_free_result($rs);
?>

相干学习保举:PHP编程从入门到通晓

以上就是PHP若何完成多个要害词查问?的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题 关键词查询

抱歉,评论功能暂时关闭!