2 回答

TA貢獻1799條經驗 獲得超9個贊
您在 foreach 循環的幫助下查詢數據庫的方法是錯誤的。正確的方法是在查詢中使用連接:
從您的函數getDataOneColumn()中,您僅使用snippet_id 值,您可以使用它來創建連接:
public function getDataOneColumn($table, $col1_name, $col1_value, $limit, $start)
{
$this->db->select("t1.*,t2.*")
->where("t1.$col1_name", $col1_value)
->join("snippets t2","t1.snippet_id=t2.id")
->limit($limit, $start);
$query = $this->db->get("$table t1");
$result = $query->result();
return $result;
}
注意:在您的示例$tag_id=$col1_value中,請使用更適合的任何變量名稱。
那么你的第二個功能get_tags()就完全沒有必要了。

TA貢獻1864條經驗 獲得超6個贊
我希望這能幫到您
public function get_tags($params = array(), $tag_id)
{ $result = array();
$snippetstagdata = $this->getDataOneColumn("snippets_tags","tag_id",$tag_id);
foreach ($snippetstagdata as $data) {
$this->db->where('id',$data['snippet_id']);
if(isset($params) && !empty($params))
{
$this->db->limit($params['limit'], $params['offset']);
}
$result[$data['snippet_id']] = $this->db->get('snippets')->result_array();
}
return $result;
}
和
public function getDataOneColumn($table, $col1_name, $col1_value)
{
return $this->db->get_where($table,array($col1_name=>$col1_value))->result_array();
}
- 2 回答
- 0 關注
- 158 瀏覽
添加回答
舉報