here sample database.
1)base_groups |base_gp_id| base_gp_name | ---------------------------- | 1 | technician | | 2 | sales | | 3 | r&d | | 4 | testing | 2)base_subgroup (fk of base_groups) | base_id | base_name | base_gp_id | ----------------------------------------------- | 1 | group1 | 1, 2, 3 | | 2 | group2 | 3 | | 3 | group3 | 3, 4 |
my question how going display group name once. in advance.
here code , result.
<?php //$groupinfo consists of base_subgroup id : 1,2 , 3 foreach($groupinfo $value) { $group_sql = base_executesql("select * base_subgroup base_name='".$value."'"); while($row = base_fetch_array($group_sql)) if(base_num_rows($group_sql) != 0) { $group_data = explode(", ",$row['base_gp_id']); foreach($group_data $data) { $group_query = base_executesql("select * base_groups base_gp_id='".$data."'"); while($row_group = base_fetch_array($group_query)) echo $row_group['base_gp_name'] . "<br>"; } } }
output of code above:
technician sales r&d r&d r&d testing
but result have show:
technican sales r&d testing
update
$group_data = array(); foreach($groupinfo $value) { $group_sql = base_executesql("select * base_subgroup base_name='".$value."'"); while($row = base_fetch_array($group_sql)) if(base_num_rows($group_sql) != 0) { $group_data = array_merge($group_data, explode(", ",$row['base_gp_id'])); } } $group_data = array_unique($group_data); $group_query = base_executesql("select * base_groups base_gp_id in (". implode(',', $group_data) .")"); while($row_group = base_fetch_array($group_query)) { echo $row_group['base_gp_name'] . "<br>"; }
when need single column work dont fetch them *
, use fetch column only..
previously
add group by
clause. fetch unique result database. try -
"select * base_groups base_gp_id='".$data."' group base_gp_name"
Comments
Post a Comment