Это мои таблицы, которые мне нужны для получения данных из этих таблиц. Каждый из них может пользователь при многих типах groups
, например 2, 3, 4Выберите один раз для повторной записи
1)groups |gp_id|gp_name|gp_status| ------------------------------------- | 1 | Admin | Active | | 2 | R&D | Active | | 3 | Sales | Active | | 4 | IT | Active | 2)modules (FK of table parent_modules) |mod_id| mod_name| pmod_id | --------------------------------------------- | 1 | name1 | 1 | | 2 | name2 | 1 | | 3 | name3 | 2 | | 4 | name4 | 3 | | ... | name... | 3 | mod_id = 5,6,7.. and so on 3)parent_modules |pmod_id| mod_name |pmod_status| ----------------------------------------- | 1 | Contact Us | Active | | 2 | Account Settings | Active | | 3 | System Settings | Active | 4)group_details (FK of table groups) (FK of table modules) |gpd_id | gp_id | mod_id | base_gpd_rule_view/edit/update/insert | ----------------------------------------------------------------------- | 1 | 3 | 1 | on | | 2 | 3 | 2 | on | | 3 | 3 | 3 | | | 4 | 3 | 4 | | 5 | 3 | 5 | on | | 6 | 3 | 6 | | 7 | 3 | 7 | | 8 | 4 | 6 | | 9 | 4 | 7 | on | | 10 | 4 | 8 | on |
Я должен выбрать только один раз дублированных результатов group_details
и это результат, который я хочу.
| gp_id | mod_id | ---------------------------------------------- | 3 | 1 | | 3 | 2 | | 3 | 3 | | 3 | 4 | | 3 | 5 | | 3 | 6 | | 3 | 7 | | 4 | 8 |
До сих пор это то, что я сделал в своем запросе, но он показывает мне дубликат записи.
//get user groups store in database. example group in database:2, 3, 4
$GroupList = explode(", ", $UserDetail['u_group']);
foreach($GroupList as $a)
{
$getParentModuleSQL = base_executeSQL("SELECT * FROM parent_modules WHERE pmod_status<>'Disable'");
$count1 = base_num_rows($getParentModuleSQL);
while($ParentModuledata_row = base_fetch_array($getParentModuleSQL))
if ($count1!= 0)
{
base_executeSQL("SELECT gp.gp_id AS ID FROM group_details AS gp, modules AS m WHERE m.pmod_id =". $ParentModuledata_row['pmod_id'] ." AND gp.gp_id=". $a ." AND gp.mod_id = m.mod_id" AND (base_gpd_rule_view='on' OR base_gpd_rule_add='on' OR base_gpd_rule_edit='on' OR base_gpd_rule_delete='on') GROUP BY gp.mod_id);
}
}
Почему вы не хотите видеть '4 | 6' и '4 | Они, кажется, не дубликаты? или вы имеете в виду только там, где mod_id является дубликатом? в каком случае, какой gp_id вы хотите увидеть для mod_id? или вы хотите видеть все gp_id для mod_id, но только в одной строке? –
в основном то, что мне нужно сделать, это что-то вроде этого. [check here] (http://a1javascripts.com/wp-content/uploads/2012/12/Drop-Menu.jpg), тогда как parent_modules - это страница категории, а модули - суб-навигационная ссылка. – Sollo
Я понимаю. но 'mod_id' 6 имеет' gp_id' 3 и 4. как вы хотите решить, какой 'gp_id' выбрать? –