gpt4 book ai didi

php - 如何做一个 HTML 'upward' rowspan

转载 作者:行者123 更新时间:2023-11-29 00:14:45 27 4
gpt4 key购买 nike

问题是:

我需要知道是否有办法在 <th> 上做一个向上的行跨度表单上的元素。

我正在读取数据库中的一些行,我需要将它们放入 html 表中。我正在做类似的事情:

echo "<table>";
while($result = $resultSet->fetch())
{
echo "<tr>";
echo "<td>$result['Name']</td>";
echo "<td>$result['Job']</td>";
echo "</tr>";
}
ehco "</table>";

第一步很简单,直到我需要将包含相同值的两个相邻单元格“跨越”在一起。

例如,如果某人有相同的名字但有两份工作,我希望他们有类似的东西:

echo "<tr>";
echo "<td rowspan='2'>$result['Name']</td>";
echo "<td>$result['Job']</td>";
echo "</tr>";

但我无法预测一个人有多少份工作(除非他们都至少有一份,而且他们都井井有条)。MySQL 表记录示例

姓名/**/工作

保罗/**/乔布斯1

西蒙/**/乔布斯23

西蒙/**/乔布斯45

罗杰/**/乔布斯67

(所有 simon 的工作都“一个接一个”,它们是分组的。如果 Paul 有第二份工作,那将是表中的第二条记录“将 simon 的工作推低”)。

所以我需要更改第一个元素的 rowspan 值以适应该人的工作数量。

这就是为什么我需要知道是否有可能向上跨度,因为我可以只显示每个人并计算每个人有多少工作,然后做一个 rowspan 向上合并表格单元格。

获取数据库中的每一行然后遍历所有行并检查一个人现在必须“跨越”单元格的作业数量,然后显示所有行然后跳过它们肯定会更容易。等等。

谢谢

最佳答案

像这样的情况需要预处理。像这样:

$people = array();
while($result = $resultSet->fetch())
{
if( !isset($people[$result['Name']])) $people[$result['Name']] = array();
$people[$result['Name']][] = $result['Job'];
}

echo "<table>";
foreach($people as $name=>$jobs)
{
echo "<tr>";
echo "<td rowspan=\"".count($jobs)."\">".$name."</td>";
echo "<td>".array_shift($jobs)."</td>";
echo "</tr>";
foreach( $jobs as $otherjob)
{
echo "<tr><td>".$otherjob."</td></tr>";
}
}
echo "</table>";

完成!

关于php - 如何做一个 HTML 'upward' rowspan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396878/

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