Помогите упростить:
function __construct() {
global $db;
$pupils = '
sum(s.total_pupils_2011) as pupils_2011,
sum(s.total_pupils_2012) as pupils_2012,
sum(s.total_pupils_2013) as pupils_2013';
$this->data = $db->select('select r.id, r.name, '.$pupils.' from ?_geo_regions as r left join ?_schools as s on s.region = r.id group by r.id order by r.name');
}
function calc_reg_sc($region_id,$pupils){
global $db;
$num = 0;
$sc = $db->select("select * from ?_schools where region = ?",$region_id);
foreach($sc as $key => $val){
if($val[$pupils] > 0)
$num++;
}
return $num;
}
Вывод в таблицу:
<?php
$year_arr = array('2011','2012','2013');
?>
<table id="pupils">
<tr>
<td rowspan="2">Область</td><td colspan="3">Шкіл, по роках,лд.</td><td colspan="3">Учасників, по роках, учн.</td>
</tr>
<tr>
<? foreach($year_arr as $year){?>
<td><?=$year?></td>
<? }?>
<? foreach($year_arr as $year){?>
<td><?=$year?></td>
<? }?>
</tr>
<? foreach ($$class->data as $val){?>
<tr>
<td><?=$val['name']?></td>
<? foreach($year_arr as $year){?>
<td><?=$$class->calc_reg_sc($val['id'],$pupils='total_pupils_'.$year)?></td>
<? }
foreach($year_arr as $year){
?>
<td><?=$val['pupils_'.$year]?></td>
<? }?>
</tr>
<?
}?>
</table>