gpt4 book ai didi

php - 如何在单行( 中)的 html 表中显示具有相同 ID 的多条记录?

转载 作者:太空宇宙 更新时间:2023-11-04 15:09:52 26 4
gpt4 key购买 nike

我有如下记录的sql数据结果集

 id |   name    |   hobbies
------------------------------------
1 | RAVI | PLAYING CRICKET
------------------------------------
1 | RAVI | LISTENING MUSIC
------------------------------------
2 | REENA | BADMINTON
------------------------------------

我正在使用 html 表格在 View 中显示此数据。而我的需求是,我想显示如下

id  |   name    |   hobbies
------------------------------------
1 | RAVI | PLAYING CRICKET
| | LISTENING MUSIC
------------------------------------
2 | REENA | BADMINTON
------------------------------------

意思是我想将id为1的记录显示为一个<td>我正在使用 php foreach循环显示结果。我怎样才能做到这一点?

我当前的代码如下,结果与我的第一个表相同,而我希望我的 View 与第二个表中的 View 相同。

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

最佳答案

解决此问题的一种快速方法是修改您的 MySQL 查询以使用 GROUP_CONCAT(hobbies) 将用户的所有爱好组合在一起。查询看起来像这样:

SELECT
id, name, GROUP_CONCAT(hobbies) AS hobbies
FROM
your_table
GROUP BY
id

这会将用户的所有爱好分组到逗号分隔的列表中。要显示它,您可以使用 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>';
}

如果你不想要内循环(或者结尾<br />会填充爱好),你可以使用 str_replace() 相反:

echo str_replace(',', '<br />', $result['hobbies']);

关于php - 如何在单行(<td> 中)的 html 表中显示具有相同 ID 的多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com