CodeIgniter - mysql while loop


CodeIgniter - mysql while loop

我是一个比较有经验的PHP开发人员。

我选择了CodeIgniter框架。到目前为止,我已经了解了它的用法。到目前为止,我希望能够做一个while循环。

在我的控制器中,我有:

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

在我的模型中,我有:

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

And in my View:

echo $result[0];

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

请你帮我从数据库中检索信息- while循环。

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

实际上有一种更简单的方法来做你想做的事情,使用CodeIgniter包含的ActiveRecord类,它将允许你只返回一个结果数组。这是文档

你的模型将变成:

$this->db->where('last_name','Hart');
$result = $this->db->get('users');
return $result->result_array();

您可能还必须在application/config/database.php中设置数据库,并在application/config/autoload.php中加载数据库类:

$autoload['libraries'] = array('database');

要显示此信息,请正确使用MVC模式,您的控制器应该将它从模型获得的信息传递给视图。要做到这一点,通常可以这样做:

$data['myinfo'] = $this->test->getInfo();
$this->load->view('test_view',$data);

然后你必须创建一个视图,如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>

我建议您在深入创建应用程序之前阅读CodeIgniter用户指南,因为CodeIgniter包含大大简化和加快整个过程的库。

mysql_fetch_array每次只能返回一行,因此您需要在mysql_fetch_array调用

周围放置while循环

之类的

while($row = mysql_fetch_array($result)) { //save/process data }

然而,我会使用codeigniter库来加载db,然后使用它:

$this->load->database();
$result = $this->db->query("SELECT * FROM users WHERE last_name='Hart'");
$result = $result->result_array();
//check for data and handle errors
return $result[0]