加入mysql php函数,而不是foreach循环
我需要在mysql数据库活动中通过trought 09.03.2014和12.03.2014:加入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
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')
)