Я вычисляю статистику по распределению предметов в игре каждый месяц.
У меня есть такая таблица:
Date itemname quantity avg. price
Mar-2012 x 10 3.45
Mar-2012 y 12 4.66
Apr-2012 x 23 4.56
Apr-2012 y 9 4.6
Как в PHP я могу построить массив и построитьтаблица, которая показывает следующий отчет за последние 6 месяцев?
Mar-2012 Apr-2012
quantity avg_price quantity avg_price
x 10 3.45 23 4.56
y 12 4.66 9 4.6
Я не могу создать такой отчет.любая помощь?
Спасибо
Найденное решение;Я хотел знать, есть ли в PHP простой способ сделать это.Я понял, что должен применить логику.Решение следует (код Kohana 2.x):
Контроллер:
$db = Database::instance();
$months = $db -> query( "select distinct from_unixtime( timestamp, '%m-%Y') month
from stats_items
where timestamp >= ( unix_timestamp() - ( 6 * 30 * 24 * 3600 ) ) order by timestamp asc" ) -> as_array();
$res = ORM::factory('stats_item') -> find_all();
foreach ( $res as $r )
{
$stats[$r->name][date('M-Y', $r -> timestamp)]['total'] = $r -> total;
$db = Database::instance();
$months = $db -> query( "select distinct from_unixtime( timestamp, '%m-%Y') month
from stats_items where timestamp >= ( unix_timestamp() - ( 6 * 30 * 24 * 3600 ) ) order by timestamp asc" ) -> as_array();
$res = ORM::factory('stats_item') -> find_all();
foreach ( $res as $r )
{
$stats[$r->name][date('M-Y', $r -> timestamp)]['total'] = $r -> total;
$stats[$r->name][date('M-Y', $r -> timestamp)]['avg_price'] = $r -> avg_price;
}
$view->months = $months;
$view->stats_items = $stats;stats[$r->name][date('M-Y', $r -> timestamp)]['avg_price'] = $r -> avg_price;
}
$view->months = $months;
$view->stats_items = $stats;
Вид:
<table>
<?php
echo "<tr><td width='20%'></td>";
foreach ( $months as $month )
echo "<td colspan='2' style='text-align:center' width='20%'>" . $month -> month . '</td>' ;
echo '</tr>';
echo '<tr>';
echo '<td>Item</td>';
foreach ( $months as $month )
echo "<td>Total</td><td>Avg Price</td>";
echo '</tr>';
$i=0;
foreach ( $stats_items as $key => $value )
{
$class = ( $i % 2 == 0 ) ? 'alternaterow' : '' ;
echo "<tr class='$class'>";
echo '<td>'. kohana::lang( $key) . '</td>' ;
foreach ( $value as $key2 => $value2 )
{
echo "<td class='tright'>".$value2['total'].'</td>';
echo "<td class='tright'>".$value2['avg_price'].'</td>';
}
echo '</tr>';
$i++;
}
?>