Повторяющееся имя столбца 'id' CODEIGNITER - PullRequest
0 голосов
/ 12 марта 2019

Привет, я не могу понять, почему у меня эта ошибка

Это запрос:

function get_num_post($args = array()) {
    $this->db->from("diario");
    if (isset($args["tag"]) && $args["tag"]) :
        $this->db->join("diario_tag_rif","diario_tag_rif.post_id = diario.id");
        $this->db->group_by("diario.id");
        $this->db->where("diario_tag_rif.tag_id",$args["tag"]->id);
    endif;
    if (isset($args["anno"]) && $args["anno"]) :
        $this->db->where("YEAR(diario.data)",$args["anno"]);
    endif;
    if (isset($args["mese"]) && $args["mese"]) :
        $this->db->where("MONTH(diario.data)",$args["mese"]);
    endif;
    $this->db->join("diario_categorie","diario_categorie.id = diario.categoria_id");
    return $this->db->count_all_results();
}

Пожалуйста, не могли бы вы помочь мне в моей проблеме? Большое вам спасибо:)

Ответы [ 3 ]

0 голосов
/ 12 марта 2019

Это означает, что ваша объединяющая таблица имеет столбцы с одинаковым именем id. Все, что вам нужно сделать, это использовать псевдоним для этих столбцов и отдельное имя, например

function get_num_post($args = array()) {
//put all columns required 
$this->db->select('diario.id dId,diario_tag_rif.id diId,diario_categorie.id dicId');
$this->db->from("diario");
//.....
0 голосов
/ 12 марта 2019

Вы должны сначала присоединиться перед использованием where, и вы можете использовать group by after where.

0 голосов
/ 12 марта 2019

Лучший способ решить эту проблему - добавить функцию выбора построителя запросов.

$ this-> db-> select ("diario. *, Diario.id as id_diario"); // упомяните здесь поле будет Вы выбираете, и вы должны сделать псевдонимы поля id.

Итак, полный скрипт показан так:

    function get_num_post($args = array()) {
        $this->db->from("diario");
$this->db->select("diario.*,diario.id as id_diario");
        if (isset($args["tag"]) && $args["tag"]) :
            $this->db->join("diario_tag_rif","diario_tag_rif.post_id = diario.id");
            $this->db->group_by("diario.id");
            $this->db->where("diario_tag_rif.tag_id",$args["tag"]->id);
        endif;
        if (isset($args["anno"]) && $args["anno"]) :
            $this->db->where("YEAR(diario.data)",$args["anno"]);
        endif;
        if (isset($args["mese"]) && $args["mese"]) :
            $this->db->where("MONTH(diario.data)",$args["mese"]);
        endif;
        $this->db->join("diario_categorie","diario_categorie.id = diario.categoria_id");
        return $this->db->count_all_results(); }

Гудлак!

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