Ree*_*ale 2 html php codeigniter
我有sql数据结果集,其记录如下
id | name | hobbies
------------------------------------
1 | RAVI | PLAYING CRICKET
------------------------------------
1 | RAVI | LISTENING MUSIC
------------------------------------
2 | REENA | BADMINTON
------------------------------------
Run Code Online (Sandbox Code Playgroud)
我使用html表在视图中显示这些数据.虽然我的要求是,我想显示如下
id | name | hobbies
------------------------------------
1 | RAVI | PLAYING CRICKET
| | LISTENING MUSIC
------------------------------------
2 | REENA | BADMINTON
------------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望将id为1的记录显示为一个<td>
我使用php foreach
循环来显示结果.我怎样才能做到这一点?
我当前的代码如下,结果与我的第一个表相同,而我希望我的视图在第二个表中.
<table class="table table-striped">
<tr >
<th>ID</th>
<th>Name</th>
<th>Hobbies</th>
</tr>
foreach($result as $row)
{
echo "<tr>
<td>".$row->id."</td>
<td>". $row->name."</td>
<td>". $row->hobbies."</td>
</tr>";
}
</table>
Run Code Online (Sandbox Code Playgroud)
解决这个问题的一种快速方法是修改MySQL查询,以便GROUP_CONCAT(hobbies)
将所有用户的爱好组合在一起.查询看起来像这样:
SELECT
id, name, GROUP_CONCAT(hobbies) AS hobbies
FROM
your_table
GROUP BY
id
Run Code Online (Sandbox Code Playgroud)
这将把所有用户的爱好分组到逗号分隔的列表中.要显示它,您可以使用PHP explode()
并迭代:
foreach ($results as $row) {
echo '<tr>';
echo '<td>' . $row->id . '</td>';
echo '<td>' . $row->name . '</td>';
echo '<td>';
$hobbies = explode(',', $row->hobbies);
foreach ($hobbies as $hobby) {
// output each hobby and decorate/separate them however you'd like
echo $hobby . '<br />';
}
echo '</td>';
echo '</tr>';
}
Run Code Online (Sandbox Code Playgroud)
如果你不想要内循环(或<br />
填充爱好的结尾),你可以使用str_replace()
:
echo str_replace(',', '<br />', $result['hobbies']);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5293 次 |
最近记录: |