【发布时间】:2011-08-09 09:08:41
【问题描述】:
我有一个包含事件的数据库表:
id | title | description | day_start | day_end | user_id
1 | sometitle | blabla | 2011-04-20 | 2011-04-21 | 1
2 | title 2 | bleble | 2011-04-20 | 2011-04-21 | 1
我想用 foreach 循环从我的数据库中读出这个。
我想把它存入$data[day_start]
例如:$data['2011-04-21'] 在这种情况下应该包含两个数组,一个用于每个事件。我不知道该怎么做。我有以下代码(在 CI 中):
($start 参数是一个日期,例如 2011-04-20)。
public function get_event_data($start)
{
$data = array();
$query = $this->db->query(
"SELECT *
FROM tblEvents
WHERE user_id = '" . $this->session->userdata('id') . "'
AND day_start = '" . $start . "';"
);
foreach($query->result() as $row)
{
$data[$row->day_start] = array(
'title' => $row->title,
'description' => $row->description,
'day_start' => $row->day_start,
'day_end' => $row->day_end,
'time_start' => $row->time_start,
'time_end' => $row->time_end,
'user_id' => $row->user_id
);
}
return $data;
}
但是,正如预期的那样,这只会输出 SECOND 事件(因为我使用的是 '=',它会覆盖第一次放入数组中的数据):
数组 ( [2011-04-20] => 数组 ( [标题] => 测试事件 2 [描述] => 第二个事件。 [day_start] => 2011-04-20 [day_end] => 2011-04-20 [时间开始] => 12 [time_end] => 13 [user_id] => 1))
(这里的数据与我在顶部提供的数据不同,但这是关于想法,而不是数据)。
我尝试使用 .= 但后来 php 抱怨找不到这样的索引。因为我没有启动它,我正在尝试添加它。
然后,我尝试使用 if(isset($data[$start]) 块,但这并没有真正让我到任何地方。
我想获取特定日期的所有事件并将它们放入一个数组中,以便我可以在我的应用程序中进一步处理它。 非常感谢。
【问题讨论】:
标签: php mysql arrays codeigniter foreach