我试图通过以下查询使用 foreach 循环从 CodeIgniter 中的数据库中获取数据,但我只得到最后的结果。
public function get_tags($limit, $start, $tag_id)
{
$snippetstagdata = $this->getDataOneColumn("snippets_tags","tag_id",$tag_id);
foreach ($snippetstagdata as $getSnippet) {
$snippet_id = $getSnippet->snippet_id;
$this->db->limit($limit, $start);
$this->db->select('*');
$this->db->from('snippets');
$this->db->where("id", $snippet_id);
//$this->db->like('snippet_tags',$query);
$query = $this->db->get();
}
$result = $query->result();
$this->db->save_queries = false;
return $result;
}
而 getDataOneColumn
函数是
public function getDataOneColumn($table, $col1_name, $col1_value)
{
$this->db->where("$col1_name", $col1_value);
$query = $this->db->get("$table");
$result = $query->result();
$this->db->save_queries = false;
return $result;
}
最佳答案
这是不正确的:
foreach ($snippetstagdata as $getSnippet) {
$snippet_id = $getSnippet->snippet_id;
$this->db->limit($limit, $start);
$this->db->select('*');
$this->db->from('snippets');
$this->db->where("id", $snippet_id);
//$this->db->like('snippet_tags',$query);
$query = $this->db->get();
}
$result = $query->result();
您正在循环遍历数据中的每个项目并每次都重置 $query
,但是当您退出循环时仅使用一次 $query
。
你需要移动这条线:
$result = $query->result();
在循环内获得正确的输出。
编辑:
如前所述,这也不是 100%。 $result 应该是一个数组,在循环内部,查询应该像这样被插入数组:
$result[] = $query->result();
然后最后的数组 ($result) 可以自行循环。
关于php - 如何使用foreach循环从数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58045682/