我正在尝试根据关联表user_group
从两个表users
和groups
获取数据,但没有得到正确的结果
用户
id
user_name
群组
id
group_name
用户组
user_id
group_id
user_id group_id
1 81
2 81
3 81
4 81
5 4
6 4
我想要这样的东西
group_id group_name group_users
1 marketing asif, jamshed, alax
2 Production abc, xyz, lmn
我的 Controller 代码
$post = $this->input->post();
$postArray = $post;
$secondaryarray = array();
foreach ($postArray as $key => $value) {
if ($key == "gropup_id")
$secondaryarray['gropup_id'] = $value;
unset($postArray['gropup_id']);
} $tablename = 'tbl_users';
$check = $this->Database_class->insert($postArray, $tablename);
if (!empty($secondaryarray['gropup_id'])) {
$id['user_id'] = $this->db->insert_id("$tablename");
foreach ($secondaryarray['gropup_id'] as $value) {
$column_name = array(
'user_id' => $id['user_id'],
'gropup_id' => $value);
$tablename = 'tbl_user_group';
$check = $this->Database_class->insert($column_name, $tablename);
return redirect('users/Users/index');
}
} elseif ($check) {
return redirect('users/Users/index');
}
我的查看代码
<table>
<thead>
<tr>
<th>Name</th>
<th>Group Users</th>
</tr>
</thead>
<tbody>
<?php
$i = 0;
foreach ($getTableGroup as $value) {
?>
<tr>
<td>
<?= $value->group_name ?>
</td>
<td>
<?php
$query = $this->db->select('username')
->from('tbl_users')
->join('tbl_user_group', "tbl_users.user_id = $value->id AND tbl_user_group.gropup_id = $value->id ")
->get()
->result();
?>
<span class="label label-success"><?php foreach ($query as $value1): ?> <?= $value1->username ?> <?php endforeach; ?></span>
<!-- <input class="tagsinput form-control" type="text" value=""/>-->
</td>
<td >
</div>
</div>
<?php endif; ?>
</td>
<td>
</td>
</tr>
<?php
$i++;
}
?>
</tbody>
</table>
最佳答案
我无法测试它,但这应该对你有用:
<?php
$query = $this->db->select('c.user_name, b.group_id, a.group_name')
->from( 'tbl_groups a' )
->join( 'tbl_user_group b', 'a.id = b.group_id' )
->join( 'tbl_users c', 'b.user_id = c.id' )
->get();
echo '<table><tbody>';
if( $query->num_rows() > 0 )
{
foreach( $query->result() as $row )
{
$group_names[$row->group_id] = $row->group_name;
$group_users[$row->group_id][] = $row->user_name;
}
foreach( $group_names as $group_name )
{
foreach( $group_users as $group_id => $users_array )
{
echo '<tr>
<td>' . $group_id . '</td>
<td>' . $group_name . '</td>
<td>' . implode(',', $users_array) . '</td>
</tr>';
}
}
}
echo '</tbody></table>';
关于php - 如何在codeigniter中基于关联实体获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796767/