【发布时间】:2012-10-28 05:01:53
【问题描述】:
我在查询 codeigniter 时又遇到了困难。首先,我阅读了有关本教程的内容,以作为我当前所做工作的基础:http://ellislab.com/codeigniter/user_guide/tutorial/news_section.html
现在我为我的数据库的模型函数做的是这样的:
public function get_events()
{
$id = $this->session->userdata('id');
$this->db->flush_cache();
$this->db->select('event_id');
$this->db->select('event_name');
$this->db->select('event_date');
$this->db->select('event_time');
$this->db->select('event_count');
$this->db->select('event_max');
$this->db->select('status');
$query = $this->db->get_where('event_details',array('bar_id' => $id));
return $query->row_array();
}
现在要在我的控制器中传递值,我使用这行代码:
$data['events'] = $this->events_model->get_events();
对于视图我使用这个:
<table class="events_list">
<?php foreach ($events as $events_info): ?>
<tr>
<td>
<input type="hidden" value="<?php echo $events_info['id'] ?>">
<?php echo $events_info['event_name'] ?>
</td>
<td>
<?php echo $events_info['event_date'] ?>
</td>
<td>
<?php echo $events_info['event_time'] ?>
</td>
<td>
<?php echo $events_info['event_count'].'/'.$events_info['event_max'] ?>
</td>
<td>
<?php echo $events_info['status'] ?>
</td>
</tr>
<?php endforeach ?>
</table>
我应该得到以下回报:
(hidden)1 | Silverstein Concert | 2012-07-11 | 18:00:00 | 0/500 | 1
但我得到了
的回报1 | 1 | 1 | 1/1 | 1
好吧,我没有显示整个返回,但这应该有 7 行,它们都有一个奇怪的 1 个字符返回(下一行包含完整的 S)。自从我使用
后,我不知道问题出在哪里$data['test']=$data['events']['event_name'];
在我的控制器中并在我的视图中显示事件名称,但只有第一行数据重复 7 次。好吧,我只需要解决这个问题,我就可以继续前进。谢谢!
【问题讨论】:
-
如果可以使用
$data['events']['event_name']获取事件名称,则表示$data[events]包含一行。从您的视图中删除foreach并尝试使用$events['event_name']、$events['event_date']等。 -
在 foreach 之前写 print_r($events) 会得到什么?
-
哦,等一下,我会试试你的建议。 :)
-
哦,你们都对,我只得到 1 行。数组 ( [event_id] => 16 [event_name] => Silverstein Concert [event_date] => 2012-07-11 [event_time] => 18:00:00 [event_count] => 0 [event_max] => 500 [status] => 1)。但是它应该返回 7 行。这是怎么发生的?
-
查看
row_array文档。
标签: php codeigniter