我是一个相对有经验的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;在我看来:
echo $result[0];但是,这只输出找到的第一行中的第一个字段。
你能帮我从一个数据库- while循环中检索信息吗?
while循环会在Model中发生吗?我只是正确地说出了结果吗?
发布于 2011-09-23 05:13:07
实际上,有一种更简单的方法可以使用CodeIgniter包含的ActiveRecord类来完成您想要做的事情,它允许您只返回一组结果。这是documentation。
你的模型将变成:
$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 User Guide,因为CodeIgniter包含的库可以极大地简化和加快整个过程。
发布于 2011-09-23 05:20:36
mysql_fetch_array一次只能返回一行,所以您需要在mysql_fetch_array调用周围放入while循环
就像这样
while($row = mysql_fetch_array($result)) { //save/process data }
不过,我只会使用codeigniters库来加载数据库,然后使用它:
$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]`https://stackoverflow.com/questions/7521508
复制相似问题