Forumlar / National / Russian / Тех. поддержка / Баги и ошибки движка (Genoa 0.6)

Ratibor
#9299 2009-03-04 00:58
Поправочка, вываливаетя когда ищешь либо в форумах по заголовкам, либо в форумах по содержимому.
Если и по тому и другому вместе, то нормально.
По страницам при любых условиях нормально,
вернее если для форума конечно обе галочки стоят.
И то это глюк только в общем поиске.
Если выбрать поиск по форумам, то там тоже все нормально.
В общем надо искать в search.php после 467 строки.

Вроде нашел.
Скорей всего виноваты две строки:

AND p.fp_topicid=t.ft_id $frm_reply
GROUP BY t.ft_id ORDER BY $orderby

Так как в общем поиске нет галочки "Только в темах с ответами"
А также "Сортировать результат поиска по" и "Искать результат с"
Это есть только в поиске по форуму.

Вот тут (начиная с 700 строки):
			if ($sea_frmtitle=='1' && $sea_frmtext!='1') {
				$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
		 	WHERE 1 AND ($sqlsearchx2)
		 	AND p.fp_topicid=t.ft_id $frm_reply
		 	AND p.fp_sectionid=s.fs_id $sqlsections $sqlsections2
		 	GROUP BY t.ft_id ORDER BY $orderby
		 	LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}
			elseif ($sea_frmtext=='1' && $sea_frmtitle!='1') {
				$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
		 	WHERE 1 AND ($sqlsearchx1)
		 	AND p.fp_topicid=t.ft_id $frm_reply
		 	AND p.fp_sectionid=s.fs_id $sqlsections $sqlsections2
		 	GROUP BY t.ft_id ORDER BY $orderby
		 	LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}
			elseif ($sea_frmtext=='1' && $sea_frmtitle=='1') {
		$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
			WHERE 1 AND ( ($sqlsearchx1) OR ($sqlsearchx2) )
			AND p.fp_topicid=t.ft_id
			AND p.fp_sectionid=s.fs_id $sqlsections
			GROUP BY t.ft_id ORDER BY fp_id DESC
			LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}

надо поправить так:
			if ($sea_frmtitle=='1' && $sea_frmtext!='1') {
				$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
		 	WHERE 1 AND ($sqlsearchx2)
		 	AND p.fp_topicid=t.ft_id
		 	AND p.fp_sectionid=s.fs_id $sqlsections $sqlsections2
		 	GROUP BY t.ft_id ORDER BY fp_id DESC
		 	LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}
			elseif ($sea_frmtext=='1' && $sea_frmtitle!='1') {
				$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
		 	WHERE 1 AND ($sqlsearchx1)
		 	AND p.fp_topicid=t.ft_id
		 	AND p.fp_sectionid=s.fs_id $sqlsections $sqlsections2
		 	GROUP BY t.ft_id ORDER BY fp_id DESC
		 	LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}
			elseif ($sea_frmtext=='1' && $sea_frmtitle=='1') {
		$sql = sed_sql_query("SELECT p.fp_id, t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
		 	FROM $db_forum_posts p, $db_forum_topics t, $db_forum_sections s
			WHERE 1 AND ( ($sqlsearchx1) OR ($sqlsearchx2) )
			AND p.fp_topicid=t.ft_id
			AND p.fp_sectionid=s.fs_id $sqlsections $sqlsections2
			GROUP BY t.ft_id ORDER BY fp_id DESC
			LIMIT $cfg_maxitems");
		 	$items = mysql_num_rows($sql);
			}

Проверьте, вроде должно так быть.

В транке поправил.
Не задавай глупых вопросов, не услышишь вранья.
Bu gönderi Ratibor tarafından düzenlendi (2009-03-04 01:43, 16 yıllar önce)