[网站制作教程网,数据库技术频道,技术文章]

PHP+MySQL全文搜索实例代码下载

下面是PHP+MySQL实现的全文搜索查询的一段源码实例和操作步骤与大家一起分享。

 

$arrFTKeyWord =& DV_ChineseWordSegment($keyword);//$ftKeyWords = implode(’ ‘,$arrFTKeyWord);$ftKeyWords = ”.implode(’ ‘,$arrFTKeyWord);//fcicq:中间省略了很多….$stmt = “SELECT {$SQL_CACHE} /*SQL_CALC_FOUND_ROWS*/ ft.topicid FROM {$dv}topic_ft AS ft WHERE MATCH(ft.topicindex) AGAINST(’{$ftKeyWords}’ IN BOOLEAN MODE) “.($boardid>0?” AND ft.boardid=’{$boardid}’”:”).” AND ft.posttable=’{$stable}’”;//in boolean mode,能够保证每一条都查到.$TopicIDList = ‘0′;if( $query = $db->query($stmt,array(’absolutePage’=>$page,’pageSize’=>$pagesize,’debug’=>QUERY_DEBUG)) ){//$Record_Count = $db->scalar(”SELECT FOUND_ROWS()”);if( $Record_Count < = 0 ){ //没有就输出错误.head(1,0,0,$arrNavMenu);showmsg($lang['str_42'].$lang['str_43']);exit;}while( $tmpResult =& $db->fetch_row($query) ){ //fcicq:注意注意….这里就是保存刚才的id了.这里可以优化一下$TopicIDList .= “,{$tmpResult[0]}”;}}$PCount = ceil( (float)$Record_Count / (float)$pagesize );//fcicq:上面用php进行分页预处理,不用管它.$__dbResults =& $db->getResultSet(”SELECT {$SQL_CACHE} t.boardid,t.topicid AS rootid,t.title AS topic,t.expression,t.postusername AS username,t.postuserid,t.dateandtime,t.isbest,t.locktopic,t.child,t.hits,t.hidename FROM {$dv}topic AS t WHERE t.topicid IN({$TopicIDList}) ORDER BY t.topicid DESC”);//fcicq:这里就直接按主题的先后顺序.

(ORDER BY t.topicid DESC)进行了输出.

讲到这里大家都应该明白了吧,这就是最简单的php,mysql全文搜索分词方式。