Подсчитайте количество определенных c записей, извлеченных из базы данных и используя количество в <td>в качестве строки - PullRequest
0 голосов
/ 13 февраля 2020
<?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 находится внутри l oop, код дает мне приращение подсчета для каждого l oop, но я хочу, чтобы это было общее количество сразу.

Может кто-нибудь помочь мне с этим, пожалуйста?

Значение хранится в $ 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

1 Ответ

0 голосов
/ 13 февраля 2020

Прежде чем вы перейдете к печати l oop, вы должны найти, сколько строк для этого района у вас есть.

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

Я не проверял это. но я уверен, что это будет работать, возможно, с небольшими изменениями.

...