php – Codeigniter:foreach方法或结果数组?? [型号视图]
发布时间:2020-12-13 22:10:08 所属栏目:PHP教程 来源:网络整理
导读:我目前正在使用Framework Codeigniter关注从数据库查看数据的教程.我学习的方式有很多种.是否有更可行的方式 – 在视图文件中显示为数组还是使用’foreach’?任何意见都会有所帮助. 这是我的代码使用两种方法: 方法1型号: function getArticle(){ $this-d
我目前正在使用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(); } } 方法1查看文件: <?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型号: function getArticle(){ $this->db->select('*'); $this->db->from('test'); $this->db->where('author','DESC'); $query=$this->db->get(); if ($query->num_rows()>0) { return $query->row_array(); } $query->free_result(); } 方法2查看文件: <?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','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语句中返回任何行,则不会出现任何错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |