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.