我这里有一个for循环,$ limit是年数(这是基于sql数据库的结果)。 在这种情况下,$ limit为3,盖数为3(1、2、3)。 然后使用另一个查询来获取三个盖子的所有值,因此共有8行。 在8行中,只有5个唯一的类ID,我需要将类ID的重复索引分组。
我已经尝试过array_unique仅显示5个结果。但是我仍然需要其他3个结果的值才能将其显示在p2和p3列中,但是如果它们具有相同的类ID,则显示在同一行中
<?php
for($iy=1; $iy<=$limit; $iy++){
$sql="SELECT * FROM view_items WHERE pyear='$iy'"
$query = $this->db->prepare($sql);
$query->execute();
$res=$query->fetch();
$lids = $res->lid;
$sql_arr.="SELECT * FROM view_items WHERE lid='$lids'";
if($iy!=$limit) $sqlarr .= " UNION ";
$new_arr[] = $sql_arr;
}
$sql = implode("",$new_arr);
$query = $this->db->prepare($sql);
$query->execute();
$result = $query->fetchAll();
foreach($result as $row):
$q1 = ($row->month1) + ($row->month2) + ($row->month3);
$q2 = ($row->month4) + ($row->month5) + ($row->month6);
$total = $q1 + $q2;
?>
<tr>
<td><?php echo $row->item_class; ?></td>
<td><?php echo $q1; ?></td>
<td><?php echo $q2; ?></td>
<td><?php echo $total; ?></td>
<tr>
<?php
endforeach;
?>
代替显示8个结果,它应该仅显示5行。 然后,重复项的值应基于其pyear在其右列。 用段落形式很难解释,也许示例输出会更好地解释。
实际输出
预期产量
FINAL:使用SQL查询而不是自定义数组的显示。回答我的两个问题(但问题不是重复的),但是由于我不是专家,所以仍然愿意就数组提出任何建议。 How to display group_concat result seperately in html table cell?