CodeIgniter - mysql while循环

ryr*_*yan 0 php mysql templates codeigniter

我是比较有经验的PHP开发人员.

我选择了CodeIgniter框架.到目前为止,我已经了解它是如何使用的.到现在为止,我希望能够做一个while循环.

在我的控制器中我有:

$this->load->model('Test');
$data['result'] = $this->Test->getInfo();
$this->load->view('index1', $data);
Run Code Online (Sandbox Code Playgroud)

在我的模型中我有:

$result = mysql_query("SELECT * FROM users WHERE last_name='Hart'")or die(mysql_error());  
$row = mysql_fetch_array( $result );    
return $row;
Run Code Online (Sandbox Code Playgroud)

在我看来:

echo $result[0];
Run Code Online (Sandbox Code Playgroud)

但是,这仅输出找到的第一行中的第一个字段.

请帮我从数据库中检索信息 - 循环.

while循环是否发生在模型中?我只是正确地回应了结果吗?

Ben*_*Ben 9

实际上,使用CodeIgniter包含的ActiveRecord类可以更轻松地执行您想要执行的操作,这样您只需返回一组结果.这是文档.

你的模型会变成:

$this->db->where('last_name','Hart');
$result = $this->db->get('users');
return $result->result_array();
Run Code Online (Sandbox Code Playgroud)

您可能还需要设置数据库application/config/database.php,并在application/config/autoload.php以下位置加载数据库类:

$autoload['libraries'] = array('database');
Run Code Online (Sandbox Code Playgroud)

要显示此信息,请正确使用MVC模式,您的控制器应将其从模型获取的信息传递给视图.要做到这一点,通常你这样做:

$data['myinfo'] = $this->test->getInfo();
$this->load->view('test_view',$data);
Run Code Online (Sandbox Code Playgroud)

然后你必须创建一个这样的视图applications/views/test_view.php:

<h1>Some HTML goes here</h1>
<?php
foreach($myinfo as $row) {
    echo $row['field'];
}
?>
<p>Some more HTML goes here</p>
Run Code Online (Sandbox Code Playgroud)

我建议您在开始创建应用程序之前阅读CodeIgniter用户指南,因为CodeIgniter包含的库可以极大地简化和加快整个过程.