【问题标题】:How do I display adodb data in Codeigniter in my view?如何在我的视图中在 Codeigniter 中显示 adodb 数据?
【发布时间】:2010-09-16 21:24:10
【问题描述】:

我在 codeigniter 的模型中有这段代码:

<?php
class User_model extends Model {

    function User_model()
    {
        parent::Model();
    }
    function get_data()
    {
        $pages = false;

        // Get the pages from the database using adodb if needed
        $this->adodb->connect();

        $recordSet = $this->adodb->execute('SELECT id, genreID, artist, albumName FROM album' );
        if ( ! $recordSet )
        {
            log_message( 'error', 'Error connecting to the database' );
            log_message( 'debug', $this->adodb->getErrorMsg());
        }
        else
        {
            unset( $this->pages );
            while (!$recordSet->EOF)
            {
                $pages[] = array(
                    'id'    => $recordSet->fields[0],
                    'genreID'    => $recordSet->fields[1],
                    'artist'    => $recordSet->fields[2],
                    'albumName'    => $recordSet->fields[3]
                );

                $recordSet->MoveNext();
            }
            $this->pages = $pages;
        }

        $this->adodb->disconnect();

    } 
}
?>

我的控制器中有这个:

<?php

    class Welcome extends Controller {

        function Welcome()
        {
            parent::Controller();   
        }

        function index()
        {
            //
            $this->load->model('User_model');
            $data['query'] = $this->User_model->get_data();
            $this->load->view('welcome_message',$data);
        }
    }

我不能做的是让我的模型结果进入我的视图。没有 result() 对象,因为我使用了 adodb 所以这个:

<?php foreach($query->result() as $row): ?>
<p>
    <?=$row->albumName;?>
</p>
<?php endforeach; ?>

给我一​​个错误。

我在视图中放置什么来获取我的模型的查询结果。我知道该模型有效,因为我可以回显 $recordSet->fields[3];从模型中查看专辑名称。

感谢您的帮助。

编辑:我不明白为什么我的 get_data() 调用在我的视图中没有返回任何内容。

【问题讨论】:

    标签: codeigniter adodb


    【解决方案1】:

    一方面,您没有从 get_data 返回任何内容,这将导致 $query 为空。此外,您不应该在视图中执行查询,因为视图内容不应该处理数据层操作,而且您已经与数据库断开连接。

    【讨论】:

    • 我正在复制这里底部的那个人codeigniter.com/forums/viewthread/65672 我以为我正在遵循从控制器调用查询的活动记录模式,但我不知道为什么 get_data 什么都不返回。
    • 我输入了一个 return $recordSet 但 get_data 没有向视图返回任何内容。数据仅存在于模型中。
    • 您不需要使用 $query->results(),您是否尝试过类似于在模型中对 recordSet 进行的迭代?请注意,模型不返回值的原因是因为实现者在模型的属性($this->pages)上设置了值,您可能可以访问它 $this->User_model->pages 但通常我不向模型添加属性。
    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2015-07-16
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多