Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Last Forum Topic On Index

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 18 лет 7 месяцев
Откуда: Estonia, Tallinn

Сообщение Vladson »

там злой неоптимизированный запрос
Нет, запрос там как раз тот что надо (хотя упростить можно, согласен), главный недостаток это то что мод не работает с базами PostgreSQL и Oracle мод надо доработать...
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
romutis
phpBB 1.4.4
Сообщения: 103
Стаж: 18 лет 5 месяцев

Сообщение romutis »

Vladson писал(а):главный недостаток это то что мод не работает с базами PostgreSQL и Oracle мод надо доработать...
Почему это вдруг этот МОД с Ораклом не работает?
// romutis
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 18 лет 8 месяцев
Поблагодарили: 2 раза

Сообщение Xpert »

И какие же у коллег идеи по оптимизации есть?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
romutis
phpBB 1.4.4
Сообщения: 103
Стаж: 18 лет 5 месяцев

Сообщение romutis »

Xpert, при условии, что в качестве БД пользуются PostgeSQL версии 8 или Oracle версии не ниже 9 можно выкинуть все танцы с бубном вокруг "switch(SQL_LAYER)"

Код: Выделить всё

	//
	// Define appropriate SQL
	//
 	$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
			FROM  " . FORUMS_TABLE . " f
			LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id 
			LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id 
			LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id 
			ORDER BY f.cat_id, f.forum_order";
// romutis
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 18 лет 8 месяцев
Поблагодарили: 2 раза

Сообщение Xpert »

romutis, а если нет? :) И версии ниже?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
romutis
phpBB 1.4.4
Сообщения: 103
Стаж: 18 лет 5 месяцев

Сообщение romutis »

Кстати, на поддержку Оракла я бы сильно не налегал - phpBB не поддерживает Оракл официально. Тот код, что есть в SQL_LAYER для Оракла официально поддерживаемым кодом назвать нельзя при всём желании.

Когда-то давно (года два или больше назад) я даже вволю подискутировал на эту тему на оффсайте. :)

Добавлено спустя 3 минуты 5 секунд:
Xpert писал(а):romutis, а если нет? :) И версии ниже?
Тогда надо тра... (мучаться) с проблемой бэкпортинга.

Для Оракла этот запрос будет выглядеть так:

Код: Выделить всё

			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id  
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPICS_TABLE . " t 
				WHERE p.post_id = f.forum_last_post_id(+)
					AND u.user_id = p.poster_id(+)
					AND p.topic_id = t.topic_id(+)
				ORDER BY f.cat_id, f.forum_order";
Последний раз редактировалось romutis 01.02.2005 20:10, всего редактировалось 1 раз.
// romutis
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 18 лет 8 месяцев
Поблагодарили: 2 раза

Сообщение Xpert »

Ясно, а где же t.topic_title среди массива получаемых данных? Я так понимаю, пропустили?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 18 лет 7 месяцев
Откуда: Estonia, Tallinn

Сообщение Vladson »

Для оракла код должен выглядеть так...

Код: Выделить всё

case 'oracle':
$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id , t.topic_title, t.topic_id
	FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPICS_TABLE . " t
	WHERE p.post_id = f.forum_last_post_id(+)
		AND u.user_id = p.poster_id(+)
		AND p.topic_id = t.topic_id(+)
	ORDER BY f.cat_id, f.forum_order";
break;
Даже если это не официально то это не важно, важно то что если работает оригинальный запрос, то будет работать и этот, а что касается PostgreSQL тут я не могу сейчас сказать, но там тоже не особо сложно подправить
Последний раз редактировалось Vladson 02.02.2005 17:02, всего редактировалось 1 раз.
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
romutis
phpBB 1.4.4
Сообщения: 103
Стаж: 18 лет 5 месяцев

Сообщение romutis »

Vladson
Ошибка в коде.
AND t.topic_id = p.topic_id(+)
поменять на
AND p.topic_id = t.topic_id(+)

Не понял твою фразу про "Даже если это не официально то это не важно". Что неофициально? Что неважно?
// romutis
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 18 лет 7 месяцев
Откуда: Estonia, Tallinn

Сообщение Vladson »

Не понял твою фразу про "Даже если это не официально то это не важно". Что неофициально? Что неважно?
phpBB не поддерживает Оракл официально
Даже если это не официально то это не важно
Так понятнее ?
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
romutis
phpBB 1.4.4
Сообщения: 103
Стаж: 18 лет 5 месяцев

Сообщение romutis »

Vladson
Да, теперь понятнее. Хотя если кто-то решился взгромоздить форум на Оракл, то уж селекты переписать и оптимизировать он точно догадается. :)
// romutis
Аватара пользователя
Vladson
Former team member
Сообщения: 816
Стаж: 18 лет 7 месяцев
Откуда: Estonia, Tallinn

Сообщение Vladson »

Хотя если кто-то решился взгромоздить форум на Оракл, то уж селекты переписать и оптимизировать он точно догадается
romutis
мод всё равно должен быть написан правильно и работать при тех условиях при которых работает оригинальный продукт
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.
ncux
phpBB 1.0.0
Сообщения: 2
Стаж: 17 лет 9 месяцев

А пример?

Сообщение ncux »

Я не программист, поэтому в уме компилировать не умею. :)
Есть возможность этот МОД где-нибудь в работе увидеть?
А то я перепробовал уже черт знает сколько МОДов для этой цели, но ничего пристойного пока не нашел...
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 18 лет
Поблагодарили: 1 раз

Сообщение VVVas »

ncux
сам мод или его работу с обсуждаемым изменением запроса к базе?

Если сам мод, то прям здесь или у меня.
Вт 01 Фев 2005 11:41 VVVas
Интересный софтец
Жирным выделен эффект внесенный этим модом.
я люблю daft punk | новый sugoi.ru
ncux
phpBB 1.0.0
Сообщения: 2
Стаж: 17 лет 9 месяцев

Сообщение ncux »

На forum.vvvas.ru я нашел только Glance. Больше ничего там не видел.
Или я не туда смотрю?

Я вообще ищу нечто, вроде Glance, только без анонсов и в формате самого форума. Пока не нашел... Точнее, нашел Last Topic on Index, но он слишком простой. Хочется большего. :)

Вернуться в «Анонсы и поддержка модов для phpBB 2.0.x»