我想将具有相同名称的行合并到下表中的一行,而且合并时休假计数应该显示它的总和,我使用了两个 forach 来列出表,因为它需要两个数据。试过一些没有work.sending as a message body for email 尝试了一些方法 saw ,但是没有用
留名 雇员 1 0 Emp2 0.5 Emp3 1 Emp2 1 Emp4 4 Emp5 1 Emp3 1
代码:
$message2="<html>
<body>
<table ;>
<thead>
<tr>
<th>Name</th>
<th>Leave</th>
</tr>
</thead>
<tbody>";
foreach($leave2 as $val) {
if($val->hourcount>2)
{
$newcount=.5;
}
else
{
$newcount=0;
}
if($val->hourcount>=6)
{
$newcount=1;
}
$message2 .="<tr>
<td>" . $val->resource ."</td>
<td>".$newcount."</td>
</tr>";
}
foreach($leave as $value) {
$message2 .="<tr>
<td>" . $value->resource ."</td>
<td>".$value->Days."</td>
</tr>";
}
if (count($value->resource) > 0) {
$html = '';
foreach($val->resource as $key => $val) {
$html .= "<tr>\r\n";
$html .= "<td rowspan='".count($val)."'>{$key}</td>\r\n";
foreach($val as $key => $td) {
if($key>0) {
$html.= "<tr>";
}
$html .= "<td>{$td}</td>\r\n";
$html .= "</tr>\r\n";
}
}
}
"</tbody>
</table>
<p>Leave report</p>
<hr />
</body>
</html>";
最佳答案
你可以试试这样的东西
1 ) 创建一个数组,其中包含员工姓名和他们的总休假数
2 ) 从该数组中显示所需的表格格式
<?php
$sql = "SELECT * FROM table_name";
$result = $db->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$name = $row['Name'];
$level = $row['Level'];
if(isset($leaveArr[$name])){
$leaveArr[$name] = $leaveArr[$name]+ $level;
}else{
$leaveArr[$name] = $level;
}
} }
if(count($leaveArr)>0){
echo "<table>";
echo "<tr><td>Name</td><td>Leave</td></tr>";
foreach ($leaveArr as $key => $value) {
echo "<tr>";
echo "<td>" . $key . "</td>";
echo "<td>" . $value . "</td>";
echo "</tr>";
}
echo "</table>";
}
关于php - 如何将具有相同名称的行合并到使用两个 foreach 获取数据的行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118627/