可以在输入新闻时输入关键字,可以是多个,然后用一个搜索函数在数据库中查找。 //搜索相关新闻 function search_about($keywords,$fields)//fields是表中的字段名 { if ($keywords) { $words = explode(" ",$keywords);//关键字以空格隔开 for ($i = 0;$i < count( $words ); $i++) { if($words[$i]) { $first=0; $sql_tmp="( "; foreach ($fields as $key => $value) { if($first==0) { $sql_tmp.=$value." LIKE '%".$words[$i]."%'"; $first==1; } /*end if*/ else { $sql_tmp.=" OR ".$value." LIKE '%".$words[$i]."%'"; } /*end else*/ } if(trim($sql_tmp) != "(") $sql_tmp.=" ) OR"; if($i == 0) $sql=$sql_tmp; else { $sql.=$sql_tmp;
}
} /*end if*/
} $p=strrpos($sql,"O"); $sql=substr($sql,0,$p);/*end for*/ } /*end if*/ return $sql; }用的时候是 $query="select from tablename where $sql order by XXXX"; $result=mysql_query($query);
//搜索相关新闻
function search_about($keywords,$fields)//fields是表中的字段名
{
if ($keywords)
{
$words = explode(" ",$keywords);//关键字以空格隔开
for ($i = 0;$i < count( $words ); $i++)
{
if($words[$i])
{
$first=0;
$sql_tmp="( ";
foreach ($fields as $key => $value)
{
if($first==0)
{
$sql_tmp.=$value." LIKE '%".$words[$i]."%'";
$first==1;
}
/*end if*/
else {
$sql_tmp.=" OR ".$value." LIKE '%".$words[$i]."%'";
}
/*end else*/
}
if(trim($sql_tmp) != "(") $sql_tmp.=" ) OR";
if($i == 0) $sql=$sql_tmp;
else
{
$sql.=$sql_tmp;
}
}
/*end if*/
}
$p=strrpos($sql,"O");
$sql=substr($sql,0,$p);/*end for*/
}
/*end if*/
return $sql;
}用的时候是
$query="select from tablename where $sql order by XXXX";
$result=mysql_query($query);