加入mysql php函数,而不是foreach循环

加入mysql php函数,而不是foreach循环,php,jquery,mysql,Php,Jquery,Mysql,我需要在mysql数据库活动中通过trought 09.03.2014和12.03.2014: SELECT * FROM activity; ID timestamp_day name details 1 1394319600 Meeting Meeting with Ann about job 2 1394406000 Travel Go to New York 3 1394492400 Work Do som

我需要在mysql数据库活动中通过trought 09.03.2014和12.03.2014:

 SELECT * FROM activity;

 ID timestamp_day name        details
  1 1394319600    Meeting     Meeting with Ann about job
  2 1394406000    Travel      Go to New York
  3 1394492400    Work        Do some work...
  4 1394578800    Vacation    Prepare all necessary stuff
  5 1394319600    Car repair  Go to store to buy new parts for car
我需要得到一个JSON数据来创建datatable.net表,如下所示:

  Datum     | Name
  ----------+-----
  Sunday    |
  09/03     |
  ----------+-----
  Monday    |
  10/03     |
  ----------+----- 
  Tuesday   |
  11/03     |
  ----------+-----
  Wednesday |
  12/03     |
  ----------+-----
我想做的是:

PHP:

我的代码工作得很好,但我用查询多次访问数据库,当有相同的时间戳日值时,我只得到第一个


您可以看到,我在每个日期都使用quesry访问mysql数据库。我想用另一种方法来做?使用JOIN mysql函数会是什么样子,等等?这里您还可以看到,我的ID 1和ID 5具有相同的时间戳,因此我需要将这些行的名称放在一个单元格中,并为这些数据创建单独的HTML。

不熟悉datatable.net,我将向您展示一个通过一次数据库调用获取结果的选项。必要时进行调整

$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();
        }
    }
}
为您提供以下格式的数组:

$activities = array(
    [1394319600] => array('Meeting', 'Car repair') 
    [1394406000] => array('Travel') 
    [1394492400] => array('Work') 
    [1394578800] => array('Vacation') 
)

是,但是没有任何活动的日子必须有空数组
$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();
        }
    }
}
$activities = array(
    [1394319600] => array('Meeting', 'Car repair') 
    [1394406000] => array('Travel') 
    [1394492400] => array('Work') 
    [1394578800] => array('Vacation') 
)