Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的模型只传递一行而不是所有行?_Php_Mysql_Codeigniter - Fatal编程技术网

Php 为什么我的模型只传递一行而不是所有行?

Php 为什么我的模型只传递一行而不是所有行?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我在我的模型中运行一个查询,它返回基于前一个查询的其他结果的结果,该查询工作得非常好,但是它只返回一行,而不是它应该返回的所有行 我已经尝试在数组中返回$rows[],但这不起作用,查询不会基于第一个查询生成任何结果,正如我所说的,如果我返回result\u array(),必须有一种方法在控制器中创建这些数组 模型 控制器 $this->load->model('Main'); $category=$\u GET[“category”]; $data['id\u cat']=$this->Ma

我在我的模型中运行一个查询,它返回基于前一个查询的其他结果的结果,该查询工作得非常好,但是它只返回一行,而不是它应该返回的所有行

我已经尝试在数组中返回
$rows[]
,但这不起作用,查询不会基于第一个查询生成任何结果,正如我所说的,如果我返回
result\u array(),必须有一种方法在控制器中创建这些数组

模型

控制器

$this->load->model('Main');
$category=$\u GET[“category”];
$data['id\u cat']=$this->Main->category\u id\u results($category);
回声“;
打印($data['id\u cat']);
回声“;
$id=$data['id_cat']['id'];
$data['category\u results']=$this->Main->category\u results($category,$id);

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

根据您的代码,您似乎希望从
类别\u id\u结果中得到一行

如果是这种情况,您可以将最后一行更改为

get()->result_array()

get()->row_数组()

然后您可以使用
$data['id']
而不是
$data[0]['id']

返回
结果\u数组时,即使只有一行,也将始终使用整数对其进行索引

如果需要多行,可以使用方便的foreach循环来迭代结果,即使您不知道有多少行

从代码的最后一行开始:

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

如果希望全部记录而不是单行,可以这样尝试


最有可能的情况是,您的id如下:$id=$data['id_cat'][0]['id'];是的,我更改了
类别id\u结果
函数中的
选择
,只选择id,现在我有一个多维数组,DB自然无法识别,因此这是一个“数组到字符串转换”错误。第一个函数结果如下:
Array([0]=>Array([id]=>2))
well:$id=$data[0]['id'];没错,但为什么?我该如何改变呢?看看你的输出:
Array([0]=>Array([id]=>2))
是的,这很有效,但仍然只得到一行,我知道我还有其他匹配的行在另一个注释上,我想要所有的结果,而不是一个。哦,我找到了一些东西,我必须在
$data
['id']之间使用整数,我如何为它提供一个整数数组?
  $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);
$data['category_results'];

foreach ($data['category_results'] as $result) {
    echo $result['id'];
}
 $where = "category_id='$id' OR category_id='$category'";
  $this->db->where($where);
  $query = $this->db->get('records')->result_array();