【问题标题】:Database query returns strange values for display in codeigniter数据库查询返回奇怪的值以在 codeigniter 中显示
【发布时间】: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


【解决方案1】:

如果您可以使用$data['events']['event_name'] 获取事件名称,则意味着$data[events] 包含单行。从您的视图中删除 foreach 并尝试使用 $events['event_name']$events['event_date'] 等。

row_array 只返回结果集中的一行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2015-04-09
    • 2011-04-09
    • 1970-01-01
    • 2013-09-04
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多