Как сопоставить значение из одной таблицы MySql с именем столбца другой таблицы в PHP?

Я хочу отобразить все наши продукты из нашей таблицы продуктов. В настоящее время у нас шесть.

ID | description | url

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

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

...

У некоторых клиентов может быть только два или три из этих продуктов. Чтобы определить, имеет ли клиент определенный продукт, таблица "company_profiles" имеет значение true или false.

ID | account_num | product1 | product2

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

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

...

Когда я показываю информацию о пользователе, они должны видеть все наши продукты, но я хочу отобразить продукты, которые у них есть, и назначить класс, чтобы они выглядели более смелыми. Продукты, которые у них отсутствуют, также будут перечислены, но в более светлом цвете и под продуктами, которые у них есть.

Моя мысль о том, как выполнить это с этими двумя таблицами, - это ВЫБОР столбцов в company_profiles WHERE account_num = '$ account_num'.

Затем я бы выбрал столбцы в таблице продуктов. Отсюда я буду сопоставлять описание (уникальное имя каждого продукта) с столбцом из company_profiles с тем же именем. Продукты, которые сопоставляются с столбцом, значение которого истинно, будут назначены в переменную с ее URL-адресом. Другие продукты будут назначены другой переменной.

while($row = mysql_query($query_where_we_match_true)) {
 $************ .= echo '<a href="' 
. $row['url'] . '" target="_blank">' . $row['description'] . '</a>'; }

 echo $************;

(REPEAT FOR $falseproducts)

Я думаю, что я могу понять логику отображения результатов... вы можете предложить свои идеи, но мне действительно нужно знать, как совместить имя столбца... если нет лучшего способа сделать это.

1 ответ

Решение не должно использовать один столбец для каждого продукта. Вместо этого используйте таблицу соединений:

Продукты

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
...

licensed under cc by-sa 3.0 with attribution.