加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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型号:
class News_model扩展CI_Model {

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语句中返回任何行,则不会出现任何错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读