2011-12-21 45 views
0

这里可能有点多问,但我想要的是一些简单的指导或PHP排序脚本的例子,以便我可以自己解决。PHP排序脚本

我有一个网店,我希望我的客户根据产品的价格或颜色等一些变量对产品进行分类。

我在我的网站左边建立了一个菜单,其中有复选框,用户可以在其中检查他们想要排序的变量。当他们选中一个框时,页面容器必须刷新,并且只有符合要求的产品必须可见。有关我想要实现的示例,请参阅http://amzn.to/ryeIjF

请注意,我的产品的所有属性都存储在mysql数据库中。

+0

使用'ORDER BY FIELD1,FIELD2摆阵第一检索结果'在mysql中。 – piotrekkr 2011-12-21 18:44:51

+0

看看http://stackoverflow.com/questions/777597/sorting-an-associative-array-in-php – macjohn 2011-12-21 18:49:57

回答

3

排序在PHP多维数组其实并不是太困难。我认为这就是你希望通过价格,人气,最近,等做(什么排序..)。

假设以下结构的多维数组$itemsArray

{[ 
    { 
     "id" : "2643", 
     "name" : "Leather Jacket", 
     "price" : "249.99" 
    }, 
    { 
     "id" : "2645", 
     "name" : "Suede Jacket", 
     "price" : "289.99" 
    }, 
    ... 
]} 

这可以排序像...

usort($itemsArray, 'sortItemsByPrice'); 

function sortItemsByPrice($objA, $objB) { 
    //This function returns a -1, 0, or 1 depending on the order 
    //of object A and Object B 

    $aVal=$objA['price']; 
    $bVal=$objB['price']; 
    if ($a == $b) { 
     //or maybe sort on a secondary field 
     return 0;  
    } 
    return ($a < $b) ? 1 : -1;  
} 

无论其

如果可以排序直接在SQL中,使用ORDER BY ke你的SQL语句中的ywords

//Order by price, lowest->highest 
SELECT id,name,price FROM products ORDER BY price 

//Order by price, highest->lowest 
SELECT id,name,price FROM products ORDER BY price desc 
+0

这确实是我正在寻找的。在几个小时内,我会尝试在我们的网站上实现这一点,并看看如何使复选框调用函数:) – Forza 2011-12-21 19:15:18

+0

我必须重新说明这一点。对于您希望执行的功能类型,最好在SQL端进行排序。它会产生更快的结果。 – Dutchie432 2011-12-22 10:11:18

1

PHP不应该为你排序。你可以只是向你的php脚本提出请求,动态地构建一个SQL查询过滤所选的值,并让你的db为你做分类!这就是它的制作和优化!

+0

我不会投票,因为在大多数情况下,这是真的。但是,在高流量的站点中,通常需要将应用逻辑用于这种确切类型的事情,以便从数据库中卸载流量。 – sberry 2011-12-21 19:10:23

0

使用ORDER BY在SQL查询这样 ORDER BY产品 条款或者您可以按以后用 mysql_fetch_array($结果)方法