计算从数据库中检索的特定记录数,并使用 <td> as 行跨度中的计数


<?php
foreach ($data as $key => $value) {
if ($value->district == 'Arghakhachi') {
$count += count($value->district);
?>
<tr>
<!-- <td><?= $key + 1 ?></td> -->
<td rowspan="<?php ($key == 0) ? echo $count : '' ?>"><?= $value->district ?></td>
<td><?= $value->fiscal_Year ?></td>
<td><?= $value->animal_distributed_total ?></td>
<td><?= $value->total_animal_ai_ni_total ?></td>
<td><?= $value->ni_conceived_animal_total ?></td>
<td><?= $value->ni_produced_animal_total_female_male ?></td>
</tr>
<?php }} ?>

我希望第一个 td 仅在地区名称为 Argakhanchi 时才根据总计数值合并行。我正在根据需要获得所有输出,离开行跨度。 由于 td 在循环内,代码在每个循环中都给了我计数增量,但我希望它一次作为总数。

有人可以帮我解决这个问题吗?

存储在$data中的值。

Array
(
[0] => stdClass Object
(
[fiscal_Year] => 2071/72
[district] => Arghakhachi
[animal_distributed_total] => 0
[ai_animal_total] => 232
[ai_convicted_animal_total_female_male] => 59
[ni_animal_total] => 61
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[1] => stdClass Object
(
[fiscal_Year] => 2072/73
[district] => Arghakhachi
[animal_distributed_total] => 12
[ai_animal_total] => 785
[ai_convicted_animal_total_female_male] => 198
[ni_animal_total] => 217
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[2] => stdClass Object
(
[fiscal_Year] => 2072/73
[district] => Gulmi
[animal_distributed_total] => 2
[ai_animal_total] => 831
[ai_convicted_animal_total_female_male] => 129
[ni_animal_total] => 285
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[3] => stdClass Object
(
[fiscal_Year] => 2072/73
[district] => Pyuthan
[animal_distributed_total] => 0
[ai_animal_total] => 123
[ai_convicted_animal_total_female_male] => 0
[ni_animal_total] => 0
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[4] => stdClass Object
(
[fiscal_Year] => 2072/73
[district] => Rolpa
[animal_distributed_total] => 2
[ai_animal_total] => 119
[ai_convicted_animal_total_female_male] => 21
[ni_animal_total] => 29
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[5] => stdClass Object
(
[fiscal_Year] => 2073/74
[district] => Arghakhachi
[animal_distributed_total] => 8
[ai_animal_total] => 869
[ai_convicted_animal_total_female_male] => 251
[ni_animal_total] => 278
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)
[6] => stdClass Object
(
[fiscal_Year] => 2073/74
[district] => Gulmi
[animal_distributed_total] => 8
[ai_animal_total] => 803
[ai_convicted_animal_total_female_male] => 148
[ni_animal_total] => 213
[total_animal_ai_ni_female_male] => 0
[total_animal_ai_ni_total] => 0
[ni_conceived_animal_total] => 0
[ni_produced_animal_total_female_male] => 0
)

SQL代码:

select 
bin.fiscal_Year,bin.district
,sum(bin.animal_distributed_total)  animal_distributed_total
,sum(bin.ai_animal_total)  ai_animal_total
,(sum(bin.ai_convicted_animal_total_male) + sum(ai_convicted_animal_total_female) )  ai_convicted_animal_total_female_male
,sum(bin.ni_animal_total) ni_animal_total
,(sum(bin.total_animal_ai_ni_male) + sum(bin.total_animal_ai_ni_female) ) total_animal_ai_ni_female_male
,sum(bin.total_animal_ai_ni_total)  total_animal_ai_ni_total
,sum(bin.ni_conceived_animal_total) ni_conceived_animal_total
,(sum(bin.ni_produced_animal_total_male)+sum(bin.ni_produced_animal_total_female) ) ni_produced_animal_total_female_male
from breed_improvement_new bin 
group by bin.fiscal_Year,bin.district

在进入打印循环之前,您应该找到您拥有的这个地区的行数。

<?php
foreach ($data as $key => $value) {
if ($value->district == 'Arghakhachi') {
$district[$value->district]=$value;
}
}

请记住,您应该省略下一行的第一个 td。

foreach ($district['Arghakhachi'] as $key=> $value) {
if($key==0){
?>
<tr>     
<td rowspan="<?=count($district['Arghakhachi'])?>"><?= $value->district ?></td>
<td><?= $value->fiscal_Year ?></td>
<td><?= $value->animal_distributed_total ?></td>
<td><?= $value->total_animal_ai_ni_total ?></td>
<td><?= $value->ni_conceived_animal_total ?></td>
<td><?= $value->ni_produced_animal_total_female_male ?></td>
</tr>
<?php }else{ ?>
<tr>
<td><?= $value->fiscal_Year ?></td>
<td><?= $value->animal_distributed_total ?></td>
<td><?= $value->total_animal_ai_ni_total ?></td>
<td><?= $value->ni_conceived_animal_total ?></td>
<td><?= $value->ni_produced_animal_total_female_male ?></td>
</tr>
<?php } ?>

我没有测试这个。 但我相信这也许可以通过一些小的修改来工作。

最新更新