Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как перейти на страницу с послед. соообщением 
:(
    Опции темы
getme
Дата 12.3.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 12.9.2008

Репутация: -2
Всего: -2



Здравствуйте!

Возникла такая проблема, 

есть список форумов, каждый имеет ссылку на последнее сообщение в данном форуме в виде read.php?forum_id=5#post23, 

список сообщений разбит постранично (LIMIT X, X), проблема в том что если пост "post23" не на первой странице
то я не попадаю на него

как решить это?
PM MAIL   Вверх
bars80080
Дата 12.3.2009, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



значит надо соответствующую ссылку делать read.php?forum_id=5&page=3#post23
ссылки можно подглядеть на циферках - переходы по страницам
PM MAIL WWW   Вверх
Shark
Дата 12.3.2009, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



bars80080, насколько я понял, он не знает как сделать так, чтоб в ссылке появлялась именно  нужная страница, где как раз и есть этот "злополучный" последний пост
P.S. я и сам не знаю как это делается


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
enof
Дата 12.3.2009, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(Shark @  12.3.2009,  02:25 Найти цитируемый пост)
чтоб в ссылке появлялась именно  нужная страница, где как раз и есть этот "злополучный" последний пост
P.S. я и сам не знаю как это делается 
Код


$one_page = 20; //кол-во записей на странице
$post = 47;  //нужный пост
$page = ceil($post / $one_page); //получаем требуемую страницу


Это сообщение отредактировал(а) enof - 12.3.2009, 02:38
PM MAIL ICQ Skype   Вверх
Shark
Дата 12.3.2009, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



смотри...вот ссылка http://***/forum/topic.php?showcat=1&showforum=1&showtopic=3&page=4 (тут последни пост)
а на странице http://***/forum/index.php есть ссылка http://***/forum/topic.php?showcat=1&showforum=1&showtopic=3 как узнть на какой странице пост?

Это сообщение отредактировал(а) Shark - 12.3.2009, 02:48


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
bars80080
Дата 12.3.2009, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Shark @  12.3.2009,  01:47 Найти цитируемый пост)
смотри...вот ссылка http://***/forum/topic.php?showcat=1&showforum=1&showtopic=3&page=4 (тут последни пост)
а на странице http://***/forum/index.php есть ссылка http://***/forum/topic.php?showcat=1&showforum=1&showtopic=3 как узнть на какой странице пост?

а какой пост нужен? если на странице по 10 постов, то для page=4 это посты 41-50. допустим, нам нужен 44 пост
в этом случае номер страницы  
Цитата(enof @  12.3.2009,  01:36 Найти цитируемый пост)
$page = ceil($post / $one_page);

Код

$one_page = 10;
$post = 44;
$page = ceil($post / $one_page);

// получаем page=4
строим ссчылку:
echo '<a href="http://***/forum/topic.php?showcat=1&showforum=1&showtopic=3&page='.$page.'&post='.$post.'"  ...';
вот и всё
PM MAIL WWW   Вверх
Nigel
Дата 12.3.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



bars80080, автору нужен последний пост smile С чего ты взял, что 44-й будет именно последним?
Думаю, можно сделать сделать следующим образом:
ссылка вида: index.php?topic=123456&view=last_post.
Проверяем переменную view -> делаем запрос к бд, выясняем последний пост, попутно узнав количество постов в топике -> редиректим на необходимую страницу.
PM MAIL   Вверх
getme
Дата 12.3.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 12.9.2008

Репутация: -2
Всего: -2



Все понял, сделал. спасибо!

еще вопрос

Код

$sql  = 'SELECT f.*, 
                (SELECT COUNT(*) FROM forum_topics ft WHERE ft.forum_id=f.forum_id) as topics_count,
                (SELECT COUNT(*) FROM forum_posts fp WHERE fp.forum_id=f.forum_id) as posts_count
                 FROM forums f
                ORDER BY forum_position ASC';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$forums_list    = $stmt->fetchAll();
$stmt->closeCursor();

foreach( $forums_list as $key => $value) :
  $sql  = 'SELECT fp.post_id, fp.topic_id, fp.post_timestamp, fm.phpbb_username
                    FROM forum_posts fp
                    LEFT JOIN forum_members fm ON ( fp.user_id=fm.id)    
                    WHERE (fp.forum_id=?)';
  $stmt = $dbh->prepare($sql);
  $stmt->execute(array($value['FORUM_ID']));
  $last_post    = $stmt->fetch();
  
  if ( $last_post ) :
    $forums_list[$key]   = array_merge($value, $last_post);
  endif;
  
  $stmt->closeCursor();
endforeach;


первый запрос выбирает все форумы, вторая часть выбирает последнее сообщение для каждого форума
можно ли это как-то все в один запрос закинуть?

PM MAIL   Вверх
bars80080
Дата 12.3.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Nigel @  12.3.2009,  11:46 Найти цитируемый пост)
автору нужен последний пост  С чего ты взял, что 44-й будет именно последним?

дык, предположил для ясности. номер искомого поста, нам ведь известен
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.