foreach不在codeigniter工作

时间:2014-09-16 06:34:54

标签: php codeigniter

我目前不熟悉数据库查询,而其他的codeigniter似乎无法让我的模型正常运行。

我已经尝试将db直接加载到控制器,并且工作正常。但是,如果我打电话给我的模特不想工作就不会出现。

这是我想要实现的目标。

控制器

public function website_test_model() {

    $this->load->model('admin/website/model_website');

    $results = $this->model_website->getWebsites();

    $data['websites'] = array();

        foreach ($results as $result) {
            $data['websites'] = array(
                'website_id' => $result['website_id'],
                'name' => $result['name'],
                'url' => $result['url']
            );
        }

    $this->load->view('website/websites', $data);
   }

查看

<!-- Not Working From Controller Function Model Test -->

<?php if ($websites) { ?>
<?php foreach ($websites as $website) { ?>

<?php echo $website['website_id'];?>

<br>

<?php echo $website['name'];?>

<br>

<?php echo $website['url'];?>

<?php } ?>
<?php } ?>

模型

<?php

class Model_website extends CI_Model {

  function getWebsites() {
        $this->db->select('*');
        $this->db->from('website');
      $this->db->where('website_id');
      $this->db->where('name');
      $this->db->where('url');
      $query = $this->db->get();

      if($query->num_rows() > 0) {
        return $query->row();
      } else {
        return false;
      }
  }


}

Codeigniter Demo当我按照codeigniter用户指南中的说法尝试这种方式时,它可以工作。只是上面的代码是我想要的方式虽然试图让模型工作没有运气

public function website() {

    $results = $this->db->get('website'); // Works Direct From Controller OK.

        foreach ($results->result() as $row) {
            $data = array(
                'website_id' => $row->website_id,
                'name' => $row->name,
                'url' => $row->url
            );
        }

    $this->load->view('website/website', $data);
   }

3 个答案:

答案 0 :(得分:1)

你在模型文件中做错了

<?php

class Model_website extends CI_Model {

  function getWebsites() {
       $query =$this->db->get('website');

      if($query->num_rows() > 0) {
        return $query->result();
      } 
  }


}

1)在您的模型中,您使用的是条件$this->db->where('website_id');,但是您没有按照您的条件传递任何内容$this->db->where('website_id',$yourwebsite_id);

答案 1 :(得分:0)

您必须在模型中检查数据库查询是否返回结果。

在模型中使用此查询

 $this->db->last_query();    

答案 2 :(得分:0)

在模型中使用此查询

$query = $this->db->get('website');
return $query;

传递此查询以查看然后使用此foreach

foreach ($query->result() as $row)
{
    <?php echo $row->website_id; ?>
    <br>
    <?php echo $row->name;?>
    <br>
    <?php echo $row->url;?>

}