siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
rtyug:
ну разве я не так сделал по этой ссылке?

msg.redi = msg.redi.replace("&","&");

msg.redi = msg.redi.replace(/&/g,"&");

rtyug:
s/&/\&/g;

Откуда такой синтаксис? И где jQuery?

rtyug:
я не спрашиваю как написать регулярку
я спрашиваю как заменить символ & на &

Вам и говорят как заменить - http://javascript.ru/String/replace

edogs:
Достаточно быстро для практического применения, так что можете использовать. Но все же попробуйте наш последний вариант отсюда сравнить с ним.

Да, ваш оказался быстрее. 3 сек против вашего 0.0004 сек. Хотя я свой запрос немного подправил добавив вместо таблицы topics вложенный селект из нее, скорость сократилась до 0.03 сек. Но при добавление новых параметров в условие, время почти одинаковое.

edogs:
Если же у Вас задача выбрать не просто max pid соответствующий топику, а выбрать еще дополнительные данные, то уточните задачу - какие поля выбирать и какая полная структура таблиц.

Да, присоединить со всеми остальными полями, не до конца наверное выразился. Поля и структура думаю особого значения не имеет, так как основная связь это t.tid=p.topic_id, остальное простые данные.


Create Table: CREATE TABLE `posts` (
`pid` int(10) NOT NULL auto_increment,
`append_edit` tinyint(1) default '0',
`edit_time` int(10) default NULL,
`author_id` mediumint(8) NOT NULL default '0',
`author_name` varchar(32) default NULL,
`use_sig` tinyint(1) NOT NULL default '0',
`use_emo` tinyint(1) NOT NULL default '0',
`ip_address` varchar(16) NOT NULL default '',
`post_date` int(10) default NULL,
`icon_id` smallint(3) default NULL,
`post` mediumtext,
`queued` tinyint(1) NOT NULL default '0',
`topic_id` int(10) NOT NULL default '0',
`post_title` varchar(255) default NULL,
`new_topic` tinyint(1) default '0',
`edit_name` varchar(255) default NULL,
`post_key` varchar(32) NOT NULL default '0',
`post_parent` int(10) NOT NULL default '0',
`post_htmlstate` smallint(1) NOT NULL default '0',
`post_edit_reason` varchar(255) NOT NULL default '',
PRIMARY KEY (`pid`),
KEY `topic_id` (`topic_id`,`queued`,`pid`,`post_date`),
KEY `author_id` (`author_id`,`topic_id`),
KEY `post_date` (`post_date`),
KEY `ip_address` (`ip_address`),
KEY `post_key` (`post_key`),
FULLTEXT KEY `post` (`post`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=cp1251


Create Table: CREATE TABLE `topics` (
`tid` int(10) NOT NULL auto_increment,
`title` varchar(250) NOT NULL default '',
`description` varchar(70) default NULL,
`state` varchar(8) default NULL,
`posts` int(10) default NULL,
`starter_id` mediumint(8) NOT NULL default '0',
`start_date` int(10) default NULL,
`last_poster_id` mediumint(8) NOT NULL default '0',
`last_post` int(10) default NULL,
`icon_id` tinyint(2) default NULL,
`starter_name` varchar(32) default NULL,
`last_poster_name` varchar(32) default NULL,
`poll_state` varchar(8) default NULL,
`last_vote` int(10) default NULL,
`views` int(10) default NULL,
`forum_id` smallint(5) NOT NULL default '0',
`approved` tinyint(1) NOT NULL default '0',
`author_mode` tinyint(1) default NULL,
`pinned` tinyint(1) default NULL,
`moved_to` varchar(64) default NULL,
`total_votes` int(5) NOT NULL default '0',
`topic_hasattach` smallint(5) NOT NULL default '0',
`topic_firstpost` int(10) NOT NULL default '0',
`topic_queuedposts` int(10) NOT NULL default '0',
`topic_open_time` int(10) NOT NULL default '0',
`topic_close_time` int(10) NOT NULL default '0',
`topic_rating_total` smallint(5) unsigned NOT NULL default '0',
`topic_rating_hits` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`tid`),
KEY `topic_firstpost` (`topic_firstpost`),
KEY `last_post` (`forum_id`,`pinned`,`last_post`),
KEY `forum_id` (`forum_id`,`pinned`,`approved`),
KEY `starter_id` (`starter_id`,`forum_id`,`approved`),
KEY `last_post_sorting` (`last_post`,`forum_id`),
FULLTEXT KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251
p.s.: Последние сообщения пытаетесь выбрать с форума? Вообще принято при постинге в форум проставлять в таблицу тем номер последнего сообщения, тогда такие проблемы пропадают как класс.

Типа того. Был бы последний ай-ди конечно бы вопроса не было.

У меня в итоге получился такой запрос


SELECT t.*, p.* FROM topics t
LEFT JOIN (SELECT MAX(pid) as pid, topic_id FROM posts GROUP BY topic_id) z ON z.topic_id=t.tid
LEFT JOIN posts p ON p.pid=z.pid
WHERE t.forum_id IN (1,2,3) ORDER BY t.tid DESC LIMIT 10;

не знаю просто на сколько быстро отработает вложенный select max(pid)

Решит если поставить нормальную капчу.

k0rv1n:
А на глаз ничего "левого" в верхнем htaccess нету ?

Ну откровенно левое уже показал, плюс еще кое-что из левака

RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]

RewriteCond %{HTTP_USER_AGENT} Mail.Ru

RewriteRule ^(.*)$ – [F,L]

конечно, если не намерено хотите запретить ботам индексировать сайт. Однако судя по расположению правил - слабо верится.

Хоть есть и правила не из стандартного ЧПУ, но для нормальной работы сайта они не мешают.

aftamat4ik:
да смотрю) Только вот ведь беда - серверной части то не видно((

Серверная часть за запросы в браузере не отвечает.

k0rv1n:
ставлю дефолтный туда вставляю ваш предложенный код ситуация не меняется

Восстанавливаете дефолтный htaccess, смотрите - меняется ситуация или нет, дальше копируете по одному блоку и смотрим, до тех пор пока не уткнетесь в "профите". Если дело в htaccess, судя по всему не факт еще что в нем, раз "та же беда" происходит и с отключенным ЧПУ.

RewriteEngine On

RewriteCond %{QUERY_STRING} .

RewriteRule ^$ http://site.com/? [R=301,L]

Точно в 17 строке...

Всего: 6568