這裏可能有點多問,但我想要的是一些簡單的指導或PHP排序腳本的例子,以便我可以自己解決。PHP排序腳本
我有一個網店,我希望我的客戶根據產品的價格或顏色等一些變量對產品進行分類。
我在我的網站左邊建立了一個菜單,其中有複選框,用戶可以在其中檢查他們想要排序的變量。當他們選中一個框時,頁面容器必須刷新,並且只有符合要求的產品必須可見。有關我想要實現的示例,請參閱http://amzn.to/ryeIjF。
請注意,我的產品的所有屬性都存儲在mysql數據庫中。
這裏可能有點多問,但我想要的是一些簡單的指導或PHP排序腳本的例子,以便我可以自己解決。PHP排序腳本
我有一個網店,我希望我的客戶根據產品的價格或顏色等一些變量對產品進行分類。
我在我的網站左邊建立了一個菜單,其中有複選框,用戶可以在其中檢查他們想要排序的變量。當他們選中一個框時,頁面容器必須刷新,並且只有符合要求的產品必須可見。有關我想要實現的示例,請參閱http://amzn.to/ryeIjF。
請注意,我的產品的所有屬性都存儲在mysql數據庫中。
排序在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
這確實是我正在尋找的。在幾個小時內,我會嘗試在我們的網站上實現這一點,並看看如何使複選框調用函數:) – Forza 2011-12-21 19:15:18
我必須重新說明這一點。對於您希望執行的功能類型,最好在SQL端進行排序。它會產生更快的結果。 – Dutchie432 2011-12-22 10:11:18
PHP不應該爲你排序。你可以只是向你的php腳本提出請求,動態地構建一個SQL查詢過濾所選的值,並讓你的db爲你做分類!這就是它的製作和優化!
我不會投票,因爲在大多數情況下,這是真的。但是,在高流量的站點中,通常需要將應用邏輯用於這種確切類型的事情,以便從數據庫中卸載流量。 – sberry 2011-12-21 19:10:23
如果您的數據存儲在MySQL數據庫中,則只需在查詢數據庫時對其進行排序即可。 http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html http://php.net/manual/en/function.sort.php 我認爲,如果可能,更好的辦法是處理數據源。
使用ORDER BY在SQL查詢這樣 ORDER BY產品 條款或者您可以按以後用 mysql_fetch_array($結果)方法
使用'ORDER BY FIELD1,FIELD2擺陣第一檢索結果'在mysql中。 – piotrekkr 2011-12-21 18:44:51
看看http://stackoverflow.com/questions/777597/sorting-an-associative-array-in-php – macjohn 2011-12-21 18:49:57