Undertaker
27.02.2015 - 07:42
Добрый день ув. форумчане, даже не уверен в ту ли ветку я пишу, но в общем задача у меня такая: Есть информация, которую php скрипт выводит в таблицу по принципу: дата->определённое количество записей по этой дате->пустая строка-> и пока не закончится...
В конце таблицы 2 строки для итого. В одной таблице 24 строки (что бы влезала на лист при печати), а строк из базы может выводиться много... В целом мне надо получить инфу из базы, по описанному выше циклу, а потом распределить эту инфу в несколько таблиц по 24 строки. Я вешал проверки, но код получается длинный и гов*ый, может вы что нибудь посоветуете как решить проблему?
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
NitroGenerate
27.02.2015 - 12:27
class htmlTable
{
const ROWS_LIMIT = 24;
private $head = array();
private $rows = array();
private $rows_buffer = array();
public function __construct(array $head = array())
{
if($head)
$this->head = $head;
}
public function addRow(array $row)
{
$this->rows[] = $row;
}
private function maybeDump()
{
if(count($this->rows_buffer) >= self::ROWS_LIMIT) {
$str = '<table>';
if($this->head)
$str .= $this->generateRow($this->head);
foreach($this->rows_buffer AS $row)
$str .= $this->generateRow($row);
$str .= '<table>';
echo $str;
$this->rows_buffer = array();
return true;
}
return false;
}
public function render()
{
if($this->rows) {
foreach($this->rows AS $row) {
$this->rows_buffer[] = $row;
$this->maybeDump();
}
}
}
private function generateRow(array $row)
{
$str = '<tr>';
foreach($row AS $cols)
$str .= '<td>' . $cols . '</td>';
$str .= '<tr>';
return $str;
}
}
$htmlTable = new htmlTable();
for($i=0; $i<100; $i++)
$htmlTable->addRow(array('data' => $i, 'total_records'=> $i*$i))
$htmlTable->render();