亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 foreach 循環時限制查詢在 codeigniter 中不起作用

使用 foreach 循環時限制查詢在 codeigniter 中不起作用

PHP
肥皂起泡泡 2022-01-24 09:12:46
我正在嘗試使用以下查詢限制 foreach 循環中的分頁結果,但我沒有限制我使用以下查詢獲得所有結果。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->where("id", $snippet_id);        $this->db->select('*');        $this->db->from('snippets');        $this->db->limit($limit, $start);        $query = $this->db->get();        $result[] = $query->result();    }    $this->db->save_queries = false;    return $result;}然而 getDataOneColumnpublic 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;}更新
查看完整描述

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()就完全沒有必要了。


查看完整回答
反對 回復 2022-01-24
?
慕尼黑的夜晚無繁華

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();

}


查看完整回答
反對 回復 2022-01-24
  • 2 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號