Как получить данные из базы данных с помощью цикла foreach? - PullRequest
1 голос
/ 22 сентября 2019

Я пытаюсь получить данные из базы данных в CodeIgniter, используя цикл 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->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;
}

1 Ответ

0 голосов
/ 22 сентября 2019

Это неверно:

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) может быть зациклен на себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...