代码之家  ›  专栏  ›  技术社区  ›  johnny

如何在我的视图中显示Codeigniter中的adodb数据?

  •  0
  • johnny  · 技术社区  · 14 年前

    我在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);
            }
        }
    

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

    给我一个错误。

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

    谢谢你的帮助。

    编辑:我不明白为什么在我的视图中get\u data()调用什么都不返回。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ken Struys    14 年前

    例如,您没有从get\ u data返回任何内容,这将导致$query为空。另外,您不应该在视图中执行查询,因为视图内容不应该处理数据层操作,而且您已经断开了与数据库的连接。