用户自己填入对于程序比较简单,也可以程序自己进行分类关键字,但需要一个字典数据来进行比较,这样程序量就增大了,对于服务器的负担也加大了,还有一种可以通过管理员添加关键字,不过需要比较多的时间.

解决方案 »

  1.   

    可以在输入新闻时输入关键字,可以是多个,然后用一个搜索函数在数据库中查找。
    //搜索相关新闻
    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);