首页 > 解决方案 > 为什么我的模型只传递单行而不是所有行?

问题描述

我正在我的模型中运行一个查询,该查询根据前一个查询的其他结果返回结果,该查询工作得很好,但是它只返回一行而不是它应该返回的所有行。

我试过$rows[]在数组中返回,但这不起作用,查询不会根据第一个查询生成任何结果,正如我所说,必须有一种方法可以在控制器中创建这些数组给定我返回result_array();

模型

public function category_id_results($category) {

  return $this->db->
  select('*')->
  from('categories')->
  where('parent_id', $category)->
  get()->result_array();
}
public function category_results($category, $id) {

  print_r($id);
  $where = "category_id='$id' OR category_id='$category'";
  $this->db->where($where);
  $query = $this->db->get('records');

  $rows = array();
  foreach ($query->result_array() as $row) {

    $rows[] = array(
     //Rows
    );
  }
  return $rows;
}

控制器

  $this->load->model('Main');
  $category = $_GET["category"];

  $data['id_cat'] = $this->Main->category_id_results($category);
  echo "<pre>";
  print_r($data['id_cat']);
  echo "</pre>";
  $id = $data['id_cat']['id'];

  $data['category_results'] = $this->Main->category_results($category, $id);

当我运行 a 时,print_r($data['id_cat']);我得到了预期的输出(所有行),但它确实告诉我id索引未定义。此外,当我这样做时,我的查询也无法正常工作。

标签: phpmysqlcodeigniter

解决方案


如果想要所有记录而不是单行,您可以尝试这样

 $where = "category_id='$id' OR category_id='$category'";
  $this->db->where($where);
  $query = $this->db->get('records')->result_array();

推荐阅读