PHP: Active Record Table соединенияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP: Active Record Table соединения

Сообщение Anonymous »

У меня есть приложение, в котором используется библиотека тегов CXTAGS CDIGNITER. />
row_id < /p>

таблица < /p>

Tag_id < /p>

теги < /strong> < /p>

< /p>


< /p>


< /p>



< /p>

< /p>

< /p>

< /p>

< /p> < /br />
< /p>

< /p> < /br />
< /P /> Tag < /p>

Мой запрос в основном идет, если $ safe_tag не является null, затем присоединяйтесь к тегам_Рефу на post.id = Tags_ref.row_id, присоединяйтесь к тегам на тегаSELECT * FROM posts
JOIN tags_ref ON posts.id = tags_ref.row_id
JOIN tags ON tags_ref.tag_id = tags.id
WHERE tags.safe_tag = $safe_id
< /code>

К сожалению, запрос, который я записал в активной записи, не функционирует должным образом. Запрос работает отлично, когда £ Safe_tag - это null, но когда это не так, я получаю неправильные результаты. < /P>

function get_posts($id = NULL, $safe_tag = NULL) {

if($safe_tag != NULL){
echo $safe_tag;//debugging
$table = 'posts';
$this->db->join('tags_ref', 'posts.id = tags_ref.row_id');
$this->db->join('tags', 'tags_ref.tag_id = tags.id');
$this->db->where('tags_ref.table', $table);
$this->db->where('tags.safe_tag',$safe_tag);
}

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

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

Вот запрос с профилированием на: < /p>

SELECT *
FROM (`posts`)
INNER JOIN `tags_ref` ON `posts`.`id` = `tags_ref`.`row_id`
INNER JOIN `tags` ON `tags_ref`.`tag_id` = `tags`.`id`
WHERE `tags_ref`.`table` = 'posts'
AND `tags`.`safe_tag` = 'food'
AND `posts`.`city_id` = '2'
< /code>

Может ли кто -нибудь взглянуть? Я думаю, мне нужен свежий набор глаз на это.

Подробнее здесь: https://stackoverflow.com/questions/469 ... able-joins
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»