Nie zaznajomiony z datatable.net, pokażę ci tylko opcję pobrania wyników za pomocą jednego wywołania bazy danych. W razie potrzeby dokonaj korekt.
$rs1 = $db->prepare('SELECT * FROM activity;');
$rs1->execute();
$rows = $rs1->fetchAll();
$daterange = new DatePeriod($startDate, $interval ,$endDate);
$activities = array();
if (count($rows) > 0)
{
foreach ($rows as $row)
{
$activities[$row['timestamp_day']][] = $row['name'];
}
foreach($daterange as $date)
{
$formattedData = $data //format your date to timestamp here
if (!array_key_exists($formattedDate, $activities))
{
$activities[$formattedDate] = array();
}
}
}
Daje tablicę w następującym formacie:
$activities = array(
[1394319600] => array('Meeting', 'Car repair')
[1394406000] => array('Travel')
[1394492400] => array('Work')
[1394578800] => array('Vacation')
)