2011-12-21 52 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($結果)方法