Искать  
 
   
 
Помогите составить SQL запрос
Отправлено: 08 Январь 2010 02:35 A.M.   [ Игнорировать ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Я собираюсь использовать модуль фотогалереи. На сайте используется нестандартный метод построения URL’ов.

Выглядит все это дело примерно так:

http://www.domain.com/template/entry_url_title/photogallery/gallery_entry_id

При таком безобразии стандартные теги предыдущей и следующей записи не работают.

{exp:gallery:next_entry gallery="vacation"

Цель:
Запрос должен на основе предоставленного ID изображения цеплять галерею к которой оно относится, категорию и на основе этих данных автоматически сделать листалки назад/вперед.

Если это слишком сложно, то как вариант я могу вставлять ID категории на один сегмент раннее чем ID записи.

Благодарю.

Профиль
 
 
Отправлено: 09 Январь 2010 11:16 P.M.   [ Игнорировать ]   [ # 1 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Не ленитесь плиз *_*

Профиль
 
 
Отправлено: 10 Январь 2010 10:54 A.M.   [ Игнорировать ]   [ # 2 ]
Member
Avatar
RankRankRank
Всего сообщений:  154
Зарегистрирован  2008-05-06

а чем “стандартный метод построения URL’ов” не устраивал?

 Подпись 

http://www.intoEEtive.com

Профиль
 
 
Отправлено: 13 Январь 2010 08:37 A.M.   [ Игнорировать ]   [ # 3 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Были причины. Сайт очень крупный, там вообще мало чего от стандартного метода построения осталось.

Включил дебаг мод и выдернул запрос

SELECT t1.entry_id, t1.title, t1.entry_date, t2.entry_date AS test_date FROM exp_gallery_entries t1, exp_gallery_entries t2, exp_galleries WHERE t1.gallery_id = exp_galleries.gallery_id AND t1.cat_id = t2.cat_id AND t1.entry_id != ‘2346’ AND t2.entry_id = ‘2346’ AND t1.entry_date < 1263357291 AND t1.entry_date <= t2.entry_date AND exp_galleries.is_user_blog = ‘n’ AND exp_galleries.gallery_short_name = ‘moviezaar’ AND t1.status = ‘o’ ORDER BY t1.entry_date desc, t1.entry_id DESC

Работает, сейчас под себя еще чутог настрою и будет волшебно.

Профиль
 
 
Отправлено: 13 Январь 2010 09:06 A.M.   [ Игнорировать ]   [ # 4 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Ога, настроил, лол.

Вообщем все более менее понятно, но туда-сюда зависит от даты поста. Трабла в том что здесь мы видим такие цифры как 1263357291. В базе же в полях entry_date такого нет. Там приктически одиннаковые везде ибо фотки импортировал массово.

{exp:query sql="SELECT
                                                        t1.entry_id,
                                                        t1.title,
                                                        t1.entry_date,
                                                        t2.entry_date AS test_date
                                                    FROM    exp_gallery_entries t1,
                                                            exp_gallery_entries t2,
                                                            exp_galleries
                                                    WHERE    t1.gallery_id = exp_galleries.gallery_id
                                                            AND t1.cat_id = t2.cat_id
                                                            AND t1.entry_id != '{segment_4}'
                                                            AND t2.entry_id = '{segment_4}'
                                                            AND t1.entry_date < 1263357291
                                                            AND t1.entry_date <= t2.entry_date
                                                            AND exp_galleries.is_user_blog = 'n'
                                                            AND exp_galleries.gallery_short_name = 'gallery'
                                                            AND t1.status = 'o'
                                                    ORDER BY    t1.entry_date asc,
                                                                t1.entry_id ASC
                                                    LIMIT 1"

Можете подсказать как он так считает и как сделать автоматом.

Пример 1263357291 в базе у этой записи entry_date равен 1261936206

Профиль