$ar = preg_split("//u", '真心', -1, PREG_SPLIT_NO_EMPTY); $where =array(); foreach($ar as $v) $where[]=" 字段 like '%$v%'";$sql="select * from tt " ; $sql .= empty($where) ? '' : ' where ' . join(' and ', $where); echo $sql;
楼上写的 复杂一点,但通用 其实就是 把你的 关键字 循环 分割一下 分别LIKEWHERE KWORD LIKE '%真%' AND KWORD LIKE '%心%' 这个只有两个字都匹配了 才搜出来 WHERE KWORD LIKE '%真%' OR KWORD LIKE '%心%' 这个匹配一个就可以搜出来
如果是数据库的话 数据量不大 可以用 like
现在的问题是关键字被拆分开并在包括被拆分开的字段中检索,这个用like怎么实现
关联id,关键词在数据增加修改时候,php循环你的词库,如果有这些词就把这些词放到这个表里,搜索时候搜索这个表
$where =array();
foreach($ar as $v)
$where[]=" 字段 like '%$v%'";$sql="select * from tt " ;
$sql .= empty($where) ? '' : ' where ' . join(' and ', $where);
echo $sql;
其实就是 把你的 关键字 循环 分割一下 分别LIKEWHERE KWORD LIKE '%真%' AND KWORD LIKE '%心%' 这个只有两个字都匹配了 才搜出来
WHERE KWORD LIKE '%真%' OR KWORD LIKE '%心%' 这个匹配一个就可以搜出来
我要的结果是这样的,你打开下面的网址,输入 “文件透明” 这四个字看下效果:
http://www.staples.cn/word/%E6%96%87%E4%BB%B6%E9%80%8F%E6%98%8E