2012-01-13 1 views
0

"products"テーブルからすべての製品を表示したいと考えています。私たちは現在6つあります。1つのMySqlテーブルの値とPHPの別のテーブルのカラム名を一致させるにはどうすればよいですか?

ID | description | url 

1....Product 1.....product1.php 

2....Product 2.....product2.php 

...

一部のお客様には、2つだけ、またはこれらの製品の3を有することができます。顧客が特定の製品を所有しているかどうかを判断するには、 "company_profiles"テーブルの値がtrueまたはfalseであること。

ID | account_num | product1 | product2 

1....0000001.............1................0 

2....0000002.............1................1 

...

私は、ユーザーの情報を表示するとき、彼らは私たちの製品のすべてが表示されるはずですが、私は、彼らが最初に持っている製品を表示し、それらが大胆表示されるようにクラスを割り当てます。彼らが持っていない製品もリストされますが、より明るい色と彼らが持っている製品の下に表示されます。

私はこれら2つのテーブルでこれを達成する方法について、account_num = '$ account_num'のcompany_profilesの列を選択することを考えました。

次に、商品テーブルの列を選択します。ここからは、説明(各製品の一意の名前)と同じ名前のcompany_profilesの列を一致させます。値がtrueの列と一致する製品は、そのURLを持つ変数に割り当てられます。他の製品は別の変数に割り当てられます。

while($row = mysql_query($query_where_we_match_true)) { 
    $trueproducts .= echo '<a href="' 
. $row['url'] . '" class="trueproduct">' . $row['description'] . '</a><br />'; } 

    echo $trueproducts; 

$falseproducts FOR REPEAT)

私はあなたのアイデアを提供することを歓迎している...私は結果を表示する物流を把握できると思うが、私は実際に列を一致させる方法を知っておく必要があります名前を...これを行うより良い方法がない限り。

答えて

1

解決策は、製品ごとに1つのカラムを使用することではありません。その代わり、junction table使用:

製品を

ID Description URL 
------------------------ 
1 Product 1  product1.php 
2 Product 2  product2.php 
... 

会社

ID Account_num 
----------------- 
10 23873232 
11 32798372 
... 

CompanyProducts

Company_ID Product_ID 
------------------------ 
10   1 
10   3 
11   1 
12   2 
12   3 
... 
+0

私はcompany_profilesテーブル内の各製品の列なしでこれをどのように達成するのかよくわかりません。もっと説明できますか? – nitsuj

+0

さて、3番目のテーブルを使用してそれらを照合してください。私は私の机の上にこの紙に書かれたもの(company_products)を持っていると私は誓っています。なぜ私がそれを越えたのかを覚えています... – nitsuj

関連する問題