我目前正在使用Framework Codeigniter关注从数据库查看数据的教程.我学习的方式有很多种.是否有更可行的方式 – 在视图文件中显示为数组还是使用’foreach’?任何意见都会有所帮助.
方法1型号:
function getArticle(){
$this->db->select('*');
$this->db->from('test');
$this->db->where('author','David');
$this->db->order_by('id', 'DESC');
$query=$this->db->get();
if($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}$query->free_result();
}
}
<?PHP foreach($article as $row){ ?>
<h3><?PHP echo $row->title; ?></h3>
<p><?PHP echo $row->content; ?></p>
<p><?PHP echo $row->author; ?></p>
<p><?PHP echo $row->date; ?></p>
<?PHP } ?>
方法2型号:
class News_model扩展CI_Model {
function getArticle(){
$this->db->select('*');
$this->db->from('test');
$this->db->where('author', 'David');
$this->db->order_by('id', 'DESC');
$query=$this->db->get();
if ($query->num_rows()>0) {
return $query->row_array();
}
$query->free_result();
}
<?PHP echo '<h3>' .$article['title'].'</h3>' ?>
<?PHP echo '<p>' .$article['content']. '</p>' ?>
<?PHP echo '<p>' .$article['author']. '</p>' ?>
<?PHP echo '<p>'. $article['date']. '</p>' ?>
解决方法:
我会那样做:
模型
function getArticle() {
$this->db->select('*');
$this->db->from('test');
$this->db->where('author','David');
$this->db->order_by('id', 'DESC');
return $this->db->get()->result();
}
}
调节器
function get_tests() {
$data = array(
'tests' => $this->mymodel->getArticle()
}
$this->load->view('myview', $data);
}
视图
<table>
<?PHP foreach($tests as $test) { ?>
<tr>
<td><?PHP echo $test->title;?></td>
<td><?PHP echo $test->content;?></td>
<td><?PHP echo $test->author;?></td>
<td><?PHP echo $test->date;?></td>
</tr>
</table>
如果您希望在模型更改行中使用数组而不是对象
return $this->db->get()->result();
至
return $this->db->get()->result_array();
并在视图回声像
<td><?PHP echo $test['title'];?></td>
附:
在您的代码中,您使用$query-> free_result();但它甚至没有运行,因为当你使用关键字返回后,甚至都没有解析.无论如何都没有必要释放结果.
P.S.2.
你使用if($query-> num_rows()> 0){但没有else部分,这意味着它也没有必要.如果您不在视图中的foreach语句中返回任何行,则不会出现任何错误.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。