Хм. За обновлением ПО серверов что-то увлекся и забыл про mysql.
Запросик:
SELECT  `pid` 
FROM  `post` 
WHERE  `gid` =1
AND pid >46
ORDER BY `pid` ASC 
LIMIT 0, 1
EXPLAIN:
id    select_type    table    type    possible_keys    key    key_len    ref    rows    Extra
1    SIMPLE    post    ref    vindex,gid,navi    navi    4    const    55    Using where; Using index; Using filesort
CREATE TABLE IF NOT EXISTS `post` (
  `gid` int(11) NOT NULL,
  `cid` int(11) NOT NULL,
  `apid` int(11) NOT NULL AUTO_INCREMENT,
  `pid` int(11) NOT NULL,
  `name` tinytext NOT NULL,
  `text` longtext NOT NULL,
  `orgtext` longtext NOT NULL,
  `song` varchar(256) NOT NULL,
  `nast` varchar(256) NOT NULL,
  `hoch` varchar(256) NOT NULL,
  `smtr` varchar(256) NOT NULL,
  `date` datetime NOT NULL,
  `editdate` datetime NOT NULL,
  `coment` int(11) NOT NULL,
  `trackback` int(11) NOT NULL,
  `views` int(11) NOT NULL,
  `sub` int(11) NOT NULL,
  `ncom` tinyint(1) NOT NULL,
  PRIMARY KEY (`apid`),
  KEY `vindex` (`gid`,`pid`),
  KEY `gid` (`gid`,`date`),
  KEY `navi` (`gid`,`cid`,`pid`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=167173 ;
Собственно что делать? Это запрос для кнопки "далее" при просмотре дневника. Ищем существующую запись с максимально низким ID от текущего и делаем на неё ссылку.
Ну соответственно есть такой же запрос в обратную сторону для кнопки "назад".
Need help!
					
Отредактированно Proger (27.10.2009 23:22:31)