2012-03-25 14 views
2

PHPを使ったMySQLの動作について、簡単な質問があります。初めに私は "製品"テーブルを作成しました。テーブルは次のとおりです:PHPを使ったMySQLのソート

 
----------------------------------------------------------------------- 
| name       | brand | type  | color | price | 
|-------------------------------+---------+-----------+---------------- 
| Samsung S5230 (white   | samsung | s5230  | white | 80 | 
| Samsung S5230 (black)   | samsung | s5230  | black | 95 | 
| Samsung Wave 723 (black)  | samsung | wave723 | black | 200 | 
| Apple iPhone 4G 16GB (white) | apple | iphone4g | white | 500 | 
| Apple iPhone 4G 32GB (white) | apple | iphone4g | white | 600 | 
| Apple iPhone 4G 16GB (black) | apple | iphone4g | black | 450 | 
| Apple iPhone 4G 32GB (black) | apple | iphone4g | black | 550 | 
| Apple iPhone 3GS 16GB (white) | apple | iphone3gs | white | 300 | 
| Apple iPhone 3GS 8GB (black) | apple | iphone3gs | black | 200 | 
----------------------------------------------------------------------- 

私の製品を並べ替えるPHPスクリプトを作成したいと思います。私は以下の画像の組み合わせを並べ替える: enter image description here

最初の画像はデフォルトの状態です。
2番目の画像はSamsungチェックボックスがオンのときです。
3番目の画像はAppleのチェックボックスがオンのときです。
価格メニューで並べ替えるには、ランダム、昇順、降順の3つのオプションがあります。
製品一覧ここでは、MySQLの選択をしたい場所があります。
お時間をいただきありがとうございます。

+1

あなたの質問は何と呼ばれるのでしょうか? – JJJ

+0

今私たちはあなたがしたいことを知っています。しかし、何をしたいですか? – Denzil

+0

自分の製品を並べ替えるPHPスクリプトを作成したいと思います。これは私が欲しいものです。画像に表示されるのは、機能しないhtmlプリントスクリーンです。私は機能的なPHPスクリプトを作成したいと思います。 – CBuzatu

答えて

0

さて、問題(ではないすべての製品は、途中でソートと異なる同じフィルタリングを(持っている場合は)フィールド)のこの種を解決するために、私は、例えば、多くの関係テーブルに多くを使用:

FieldsToBrands 
------------------- 
brand_id | field_id 
------------------- 
1   1 
1   2 
2   2 

Brands 
--------------------- 
brand_id | brand_name 
--------------------- 
1   Apple 
2   Samsung 

Fields 
--------------------- 
field_id | field_name 
--------------------- 
1   Color 
2   Space 

AppleがColorとSpaceの両方を持っていて、SamsungがSpaceしか持っていないということです。これは、テーブル間の多対多の関係と呼ばれます。

+0

そして、私はPHPでこれをどのようにしていますか?スペースとは何ですか? – CBuzatu

+0

スペースは例フィールドです(4GB、8GB、16GBなど) –

+0

ありがとうございました。ソートとフィルタリングの間に混乱がありました。私が探していたのはフィルタリングでした。このコードは、私がやりたいことをとても大いに助けてくれました。[ここにリンクの説明を入力してください] [1] [1]:http://www.codingforums.com/showthread.php?t=216525 – CBuzatu

1

あなたは非常に多くのオプションをソートしたいと考えて、10億のSQLクエリを書いて正しい順序を得ることはお勧めしません。スケーラブルでスケーラブルで効率的です。欠陥。

は私ではなく、結果セット全体を取得し、そのための偉大なjQueryプラグインがあり、JavaScriptを使用して、それを並べ替え、tablesorter

+0

jsで結果セット全体をソートすると、目的のレコードを返すクエリを書くより効率的でスケーラビリティが向上しますか?データセットが小さければスケーラビリティは向上しません。 – nnichols

+0

@nnichols私は文脈で話していましたが、1日に10億件のレコードを集めた大企業では、私はそれをするよう勧告しません。 50-100レコードのデータセットを置くと、tablesorterがそれを美しく処理します。 –

+0

ありがとうございましたが、私はテーブルを作成したくありません。私は、リンクを使って私の製品をソートするPHPスクリプトを作成したいと思います。たとえば、MySQLテーブルからすべてのApple(ブランド)iPhone 4G(タイプ)をこのリンクで表示したい場合: products.php?brand = apple&type = iphone4g – CBuzatu

関連する問題