powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как правильно организовать выборку
16 сообщений из 41, страница 2 из 2
Как правильно организовать выборку
    #37855970
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Таблицы примерно могут хранится так?


item_id | category_id
1 1
-------|------------
1 2
-------|------------
1 3
-------|------------
2 1
-------|------------
3 4
-------|------------
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37855984
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37856016
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

код стал меньше и не нужно выполнять выборку всех таблиц с контентом

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public function get_page($cat_id, $limit, $start_from = 0)
    {

        $resarray = array();

        //$this->db->select($this->cat);
        $this->db->where('cat_id', $cat_id);
        $this->db->from('t_sv');
        $query = $this->db->get(); // Получаем все записи таблицы
        $allcontent = $query->result_array();
        foreach ($allcontent as $key => $value) {

            $this->db->or_where('cont_id', $value['cont_id']);
        }


        $this->db->limit($limit, $start_from);
        $query = $this->db->get('t_content');
        return $query->result_array();


    }
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37856308
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hemoy,

а сейчас откройте для себя джойны и получайте результат без сотен запросов:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ct.* 
FROM main_table mt
INNER JOIN man_to_many_table mm
    ON mt.id=mm.main_id
INNER JOIN child_table ct
    ON ct.id=mm.child_id
WHERE mt.catd_id=%d
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37857451
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

это сделает работу скрипта более эффективнее?
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37857459
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

тяжело воспринять, можно оптимизировать под мои таблицы, я еще ток учусь, сразу не могу
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37857529
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hemoy,

еще бы я умел телепатией понять названия ваших таблиц и полей...
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37857747
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренатhemoy,

а сейчас откройте для себя джойны и получайте результат без сотен запросов:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT ct.* 
FROM main_table mt
INNER JOIN man_to_many_table mm
    ON mt.id=mm.main_id
INNER JOIN child_table ct
    ON ct.id=mm.child_id
WHERE mt.catd_id=%d



одна таблица лишняя тут даже
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37857752
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,




...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37858176
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
SELECT co.* 
FROM t_sv sv
INNER JOIN t_content co
    ON sv.cont_id=co.cont_id
WHERE sv.cat_id=145
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37859213
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

отлично получилось)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public function get_page($cat_id, $limit, $start_from = 0)
    {
        $this->db->limit($limit, $start_from);
        $this->db->select('co.*');
        $this->db->from('t_sv sv');
        $this->db->join('t_content co', 'sv.cont_id = co.cont_id');
        $this->db->or_where('sv.cat_id', $cat_id);
        $query = $this->db->get();
        return $query->result_array();
    }



спасибо
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37859229
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

SELECT co.* // собираем весь контент из t_content
FROM t_sv sv // из таблицы
INNER JOIN t_content co //присоединяем таблицу t_content, что бы из нее получить контент,
ON sv.cont_id=co.cont_id // по id ?
WHERE sv.cat_id=145 // по условию что категория в таблице t_sv равна 145

если например будет еще таблица, например t_order, запрос будет выглядить так? разумеется в t_sv будет данные ид t_order (order_id)

select co.*, or.*
FROM t_sv sv
INNER JOIN t_content co
ON sv.cont_id=co.cont_id
INNER JOIN t_order co
ON sv.order_id=or.order_id
WHERE sv.cat_id=145
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37859241
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведите пример данных
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37859242
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что вы хотите получить
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37890902
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

в чем преимущество использовать 3 таблицы а не 2?

например в shop-sript 2 таблицы
...
Рейтинг: 0 / 0
Как правильно организовать выборку
    #37891103
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
        select ='c.cont_id,c.cont_title,c.cont_alias,c.cont_state,n.cat_title,c.cont_hits,c.cont_id_author,c.cont_date,c.cont_date_mod';      
        $this->db->select($select);
        $this->db->from('t_sv sv'); 
        $this->db->join('t_content c', 'sv.cont_id = c.cont_id');
        $this->db->join('t_category n', 'sv.cat_id = n.cat_id');



Проблема, выводится таблицы только которые есть в t_sv, (с категориями), а мне нужно что бы был вывод с категориями и без них
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как правильно организовать выборку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]