php - 如何将一组数据从模型传递到控制器,然后再传回模型?
问题描述
我正在尝试根据从其他行(上一个查询)获得的信息从我的数据库表中选择行。我遇到的麻烦是将$query->result_array();
控制器中的 转换为再次在模型中使用它,然后在视图中使用它。
我试图做一个foreach
循环并$query->result_array();
从模型中返回,结果证明这是有问题的,因为它不适合我网站上的不同阶段(我有几个阶段的内容)。
控制器.php
public function firststage() {
$this->load->model('Model');
$get_stage = $_GET["stg"];
$get_results = $this->Model->get_stage_id($get_stage);
foreach ($get_results as $results) {
$id = $results["id"];
}
$data['result'] = $this->Model->stage_results($get_stage, $id);
$this->load->view('stage_view', $data);
}
模型.php
public function get_stage_id($get_stage) {
$this->db->where('stage_parent', $get_stage);
$query = $this->db->get('stages');
return $query->result_array();
}
public function stage_results($get_stage, $id) {
$this->db->where('stage_id', $get_stage);
$this->db->where('stage_id', $id);
$query = $this->db->get('stage_contents');
foreach ($query->result_array() as $row) {
$rows[] = array(
'id' => $row["id"],
'name' => $row["name"]
);
}
return $rows;
}
期望输出选择基于第一个查询结果,而不是Undefined variable: rows
在我运行所有结果时得到。我认为我的观点与这个问题无关,但如果您不这么认为,请告诉我!
解决方案
你得到错误
未定义变量:$rows
因为您的查询不返回任何结果,因此 $rows 未定义
如果有行返回,您可以解决此检查:
if($query->num_rows()){
foreach ($query->result_array() as $row) {
$rows[] = array(
'id' => $row["ID"],
'name' => $row["name"]
);
}
}else {$rows='no records found';}
print_r($rows);die;
这将打印数组(如果有结果)或“无记录”
或者干脆做:
$rows = array();
foreach ($query->result_array() as $row) {
$rows[] = array(
'id' => $row["ID"],
'name' => $row["name"]
);
}
然后如果没有结果,你会得到一个空数组
推荐阅读
- string - 表达一个字符串
- oracle - Oracle PL/SQL HTTP 请求响应编码问题
- java - 运行 Java 配置的 Spring MVC 应用程序无法加载 ApplicationContext,引发 java.lang.reflect.InaccessibleObjectException
- mysql - 带有范围过滤器的两个日期之间的 SQL
- node.js - 在 IIS 服务器上托管时,带有 HTTPS 的 Node js API 不起作用
- pg-ctl - pg_ctl: 无法启动服务器
- ruby-on-rails - 如何在 Rails 中使用 Ransack 搜索日期
- python - 循环遍历多个小的 Pandas 数据框并基于单个列创建摘要数据框
- python - 试图刮掉 coinmarketcap 并获得“无”
- redis - Redis 忽略 aof-use-rdb-preamble 是