ecshop搜索功能的缺点改进
ecshop搜索功能的缺点改进:
//author:PHP博客-技术-资源-技术站-面向对象
当输入 "24 Hour"时,ecshop系统将匹配出数据库包含24或Hour的数据
这是我们不想看到的,而我们想看到的结果是包含24 Hour的数据...下面就是
我改进的方法
找到search.php中下例代码:
把中间的OR换成AND,(我这里是替换了的)
if (!empty($_REQUEST['keywords']))
{
$arr = array();
if (stristr($_REQUEST['keywords'], ' AND ') !== false)
{
/* 检查关键字中是否有AND,如果存在就是并 */
$arr = explode('AND', $_REQUEST['keywords']);
$operator = " AND ";
}
elseif (stristr($_REQUEST['keywords'], ' AND ') !== false)
{
/* 检查关键字中是否有OR,如果存在就是或 */
$arr = explode('AND', $_REQUEST['keywords']);
$operator = " AND ";
}
elseif (stristr($_REQUEST['keywords'], ' + ') !== false)
{
/* 检查关键字中是否有加号,如果存在就是并 */
$arr = explode('+', $_REQUEST['keywords']);
$operator = " AND ";
}
else
{
/* 检查关键字中是否有空格,如果存在就是或 */
$arr = explode(' ', $_REQUEST['keywords']);
$operator = " AND ";
}