2012-08-10 65 views
-1

我正在尝试构建基于PHP的电子商务网站的分面搜索。使用GET方法构建过滤器使得代码非常复杂,因为该网站有许多过滤器。有人可以给一些教程或一些更好的方式来建立一个多面搜索?一些可以帮助我在PHP中实施分面搜索

我想过使用Sphinx实现多面搜索,但我是狮身人面像的新手。客户拒绝了狮身人面像(我不知道为什么)。我能够使用Sphinx建立基本搜索,但不知道如何继续进行分面搜索。如果有人能够提供一些关于狮身人面像的教程,那将是非常棒的,因为我可能试图在实施使用它之后说服客户。时间是一个主要因素,因为我必须在一天内实施分面搜索。

$urlstring = ''; 
$urlstring = rmParamQS('category'); 
$urlstring = rmParamQS('brand', $urlstring); 

代码,将添加新的查询字符串,例如类别或品牌,将上述功能

$url = 'http://' . $_SERVER['SERVER_NAME'].'?page='.$page.$urlstring; 

$categoryGet = (isset($_GET['category']))?$_GET['category']:NULL; 
$categoryQS = '&category='.$categoryGet; 

$brandGet = (isset($_GET['brand']))?$_GET['brand']:NULL; 
$brandQS = '&brand='.$brandGet; 

$categories = categories_list($brandGet); 

echo '<ul id="categories">'; 
list all categories using foreach with link in following format 
echo '<a href="'.$url.'&category='.$category["category_id"].'">' 
echo '</ul>'; 

$brands = brands_list($categoryGet); 
echo '<ul id="brands">'; 
list all brands using foreach with link in following format 
echo '<a href="'.$url.'&brand='.$brand["brand_id"].'">' 
echo '</ul>'; 

就像种类和品牌我有五个以上的过滤器删除现有的查询字符串。 rmParamQS函数将从$ url中删除相应的查询字符串。 categories_list和brands_list函数将根据查询字符串中的id筛选其他筛选器的url中的数据

+0

如果客户端强烈拒绝它,你可能不应该使用Sphinx – Don 2012-08-10 16:42:50

+0

实际上客户端已经因时间限制而拒绝了 – user434509 2012-08-10 19:02:11

+0

那么为什么你要求Sphinx教程呢? – Don 2012-08-10 19:05:40

回答

0

我不知道为什么它是多面搜索,但这里是使用连接的php和mysql的示例:Faceted Search (solr) vs Good old filtering via PHP?

+0

其实我可以在一些函数中用数据库查询过滤数据。我在调用这些函数时遇到了许多GET方法的问题。 – user434509 2012-08-10 17:53:37

+1

大家都可以做到这一点。你能发布你的代码吗? – Bytemain 2012-08-10 18:23:54