PHP搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。
代码示例:
//分解用户输入的多个关键词,存入$result数组
$result = explode('','',$_GET['key']);
$mysql_server="localhost";
$mysql_username="数据库用户名";
$mysql_password="数据库密码";
$database_conn="数据库名";
//建立数据库链接
$conn = mysql_connect($mysql_server,$mysql_username,$mysql_password);
//选择某个数据库
mysql_select_db($database_conn, $conn);
//根据多个关键词构建SQL语句
$query_rs = "SELECT * FROM (";
//根据每个搜索关键词构建SQL语句
for($i=0;$i<count($result);$i++)
{
//对第一个关键词,不使用UNION
if($i==0)
{
$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);
}