Bonjour, je ne comprends pas pourquoi j'ai cette erreur
Ceci est une requête:
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(); }
Pouvez-vous m'aider pour mon problème? Merci beaucoup :)
3 Réponses :
La meilleure façon de résoudre ce problème, vous pouvez ajouter la fonction de sélection du générateur de requêtes.
$ this-> db-> select ("diario. *, diario.id as id_diario"); // mentionne ici le champ sera vous sélectionnez et vous devez créer un alias du champ id.
Donc, le script complet montré comme ceci:
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(); }
Goodluck!
Cela signifie que vos deux tables de jointure ont des colonnes avec le même nom id
. Tout ce que vous avez à faire est d'utiliser un alias pour ces colonnes et un nom séparé comme
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"); //.....
Vous devez d'abord vous inscrire avant d'utiliser where et vous pouvez utiliser la clause group by after where.
Suppression de la balise non pertinente
où ? dans rejoindre?