——此文章摘自《完全手册PHP网络开发详解》定价
¥
特价
¥
详细>>http://track
linktech
cn/?m_id=dangdang&a_id=A
&l=
&l_type
=
width=
height=
border=
nosave>
PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现如果同时搜索多个关键词可以使用union子句来将搜索结果合并起来以下代码实现了一个搜索页面
<?php require_once(Connections/connphp); ?>
<?php
$colname_rs = $_GET[key]; //获得用户输入
$result = explode($_GET[key]);//分解用户输入的多个关键词存入$result数组
mysql_select_db($database_conn $conn); //连接数据库
//根据多个关键词构建SQL语句
$query_rs = SELECT * FROM (;
for($i=;$i<count($result);$i++) //根据每个搜索关键词构建SQL语句
{
if($i==) //对第一个关键词不使用UNION
$query_rs = SELECT * FROM searchtable WHERE title LIKE %$result[]%
OR content LIKE %$result[]%;
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 httpequiv=ContentType content=text/html; charset=gb>
</head>
<body>
<form name=form method=get action=?>
<div align=center>请输入要搜索关键词
<input name=key type=text size= value=<?php echo $_GET[key] ?>>
<input type=submit value=Submit>
</div>
</form>
<p align=center><B>当前关键词
<?php
for($i=;$i<count($result);$i++) { //循环显示关键词
echo $result[$i] ;
}
?></B></p>
<p><hr></p>
<?php if($totalRows_rs>) do { //显示当前搜索结果 ?>
<p>* <a href=showphp?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);
?>
这里在页面上可以使用英文逗号来实现多个关键词的搜索运行结果如图所示
http://developcsaicn/web/images/jpg>
图 搜索页面
这里仍然将与数据库的连接放到一个专门的PHP文件中以方便后期的修改