2011-04-28 45 views
0

我想创造的产品清单,并通过像一个在这里,菜单上选择不同的滤镜选项对它们进行排序:http://www.newegg.com/Store/SubCategory.aspx?SubCategory=124&IsSingle=1&Category=24&name=Network-Storage-NAS如何使用具有排序功能的菜单创建产品列表?

有多难会是这个使用PHP和JavaScript程序?

+0

你说的“有多难”呢?这似乎是一个相当简单的任务,你需要的是:MYSQL:一个数据库来存储你的产品数据库; PHP:一些后端来管理你的产品数据库;当用户更改选择值时,您将重新加载页面。我认为最难的部分是数据库管理,也是最长的数据录入。 – 2011-04-28 08:54:41

+0

我应该说这是一个模糊的问题。它是否在左侧过滤器菜单中?要在该网站上创建一个类似的内容,需要4到8个小时。这又取决于你使用的框架。但从逻辑上讲,这很简单。您将选择发送到URL,并在您的查询中添加where条款中的条件.. – Karthik 2011-04-28 08:57:21

回答

1

它可以是一个有点复杂,讨论如何设计一个这样的系统,但是这是在PHP和MySQL与ORDER BY很容易实现:

$order = $_GET['order']; 
if ($order) 
{ 
    switch ($order) 
    { 
     case 'p': 
      $order = 'price'; 
      break; 

     case 'n': 
      $order = 'name'; 
      break; 

     case 'r': 
      $order = 'rating'; 
      break; 

     default: 
      $order = 'price'; 
      break; 
    } 
} 

$Sql = "SELECT product_name, price, rating FROM products ORDER BY $order ASC"; 
// do your SQL stuff here 

在HTML和Javascript,你可以这样做:

<select name="filter" onchange="window.location.href='filter.php?order='+this.value"> 
    <option value="p">Price</option> 
    <option value="n">Name</option> 
    <option value="r">Rating</option> 
</select> 

只是一个想法,但是这可以改善,从而可以更好的方法。

+0

从mysql检索后排除某些结果是什么? – user701510 2011-04-29 04:42:32

+0

您可能需要编写代码,通过从MySQL的结果进行迭代,并过滤掉你不希望显示特定的记录,但它会是最好使用查询也因此可以节省一些处理和编码将它们过滤出来时间。 – tradyblix 2011-04-29 04:53:16

+0

请你详细解释这行代码吗?平变化=“window.location.href =‘filter.php?顺序=’+ THIS.VALUE” – user701510 2011-04-30 19:18:03

0

如果你谈论新蛋和大多数其他网站的排序功能是很容易的,如果你知道SQL和PHP。产品数据存储在数据库中,并且在更改排序菜单时进行表单提交或ajax调用。该值通常也存储在会话中,以供客户在页面中查看结果时使用。排序顺序用于在从数据库中检索数据的SQL查询中设置ORDER BY子句。这就是你需要完成的一切。