簡體   English   中英

在for循環中生成查詢結果

[英]Generating query result in for loop

我想在for循環內生成查詢,但是我只得到第一個唯一的ID。 我該如何解決?

意見

for ($i=0; $i < count($id); $i++) { 
    $id = $id[$i];
    $row = $get_cash_card->by_id($id);
    echo $row[0]['id'] . "<br/>";
}

模型:

    public function by_id($id)
    {
        $query = $query = $this->db->get_where('cash_cards_info', array('id' => $id));
        $rows  = $query->num_rows();
        return $query->result_array();
    }

控制器:

    public function cash_cards_on_hand_step1()
    {

            $this->load->model('cash_cards');

            $this->form_validation->set_rules('id', 'Cash Card', 'trim|required|xss_clean');

            $data['get_cash_card'] = $this->cash_cards;
            $data['id'] = $this->input->post('id');
            $data['main_content']  = 'cash_cards_on_hand_step1';

            $this->load->view('dashboard', $data);
    }   

它以1個唯一ID運行。 有任何想法嗎?

您正在for循環中修改$id變量。 而不是

for ($i=0; $i < count($id); $i++) { 
    $id = $id[$i];
    $row = $get_cash_card->by_id($id);
    echo $row[0]['id'] . "<br/>";
}

你需要做

for ($i=0; $i < count($id); $i++) { 
    $newid = $id[$i]; //Change this line
    $row = $get_cash_card->by_id($newid);
    echo $row[0]['id'] . "<br/>";
}

因為您在第一次迭代中覆蓋了$id的值,這意味着for循環的$i < count($id)部分不再成立,因此循環停止。

另外,您不應該在視圖中訪問模型,這是您應該在控制器中執行的操作

這可能對你有用

for ($i=0; $i < count($id); $i++) { 

    $row = $get_cash_card->by_id($id[$i]);
    echo $row[0]['id'] . "<br/>";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM