PHP: Aktif kayıt tablo katıldı

0 Cevap php

Ben kütüphane etiketleme CodeIgniter CXTags kullanan bir uygulama var.

Aşağıdaki gibi veritabanı yapısı şu şekildedir:

posts

kimlik

etikets_ref

row_kimlik

tablo

etiket_kimlik

etikets

kimlik

safe_etiket

etiket

My query basically goes if $safe_etiket is not null then join etikets_ref on post.kimlik = etikets_ref.row_kimlik, join etikets on etikets_ref.etiket_kimlik = etikets.kimlik, where etikets_ref.tablo = 'posts' and etikets.safe_etiket = 'food'

SELECT * FROM posts 
JOIN etikets_ref ON posts.kimlik = etikets_ref.row_kimlik
JOIN etikets ON etikets_ref.etiket_kimlik = etikets.kimlik
WHERE etikets.safe_etiket = $safe_kimlik

Unfortunately the query I've written in active record is not functioning properly. The query works perfectly when £safe_etiket is null but when it's not I get wrong results.

function get_posts($kimlik = NULL, $safe_etiket = NULL) {

    if($safe_etiket != NULL){
        echo $safe_etiket;//debugging
        $tablo = 'posts';
        $this->db->join('etikets_ref', 'posts.kimlik = etikets_ref.row_kimlik');
        $this->db->join('etikets', 'etikets_ref.etiket_kimlik = etikets.kimlik');
        $this->db->where('etikets_ref.tablo', $tablo);
        $this->db->where('etikets.safe_etiket',$safe_etiket);
    }

    //if an kimlik was supplied
    if ( $kimlik != NULL ) {
        $this->db->where('posts.city_kimlik',$kimlik);
    }

    // execute query
    $query = $this->db->get('posts');
    ...

Burada profil ile sorgu:

SELECT *
FROM (`posts`)
INNER JOIN `etikets_ref` ON `posts`.`kimlik` = `etikets_ref`.`row_kimlik`
INNER JOIN `etikets` ON `etikets_ref`.`etiket_kimlik` = `etikets`.`kimlik`
WHERE `etikets_ref`.`tablo` = 'posts'
AND `etikets`.`safe_etiket` = 'food'
AND `posts`.`city_kimlik` = '2' 

Birisi bir bakabilir miyim? Ben üzerinde gözler taze dizi gerekir düşünüyorum.

0 Cevap