ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Вывод последних сообщений в каждом разделе
  #1  
Старый 06.02.2007, 13:35
Muha
Познающий
Регистрация: 21.08.2006
Сообщений: 70
Провел на форуме:
424011

Репутация: 4
Отправить сообщение для Muha с помощью ICQ
По умолчанию Вывод последних сообщений в каждом разделе

Приветствую всех! Написал скрипт форума. Но что-то не могу сделать, чтобы выводилось последнее сообщение возле каждого раздела на главной странице форума. Пробовал через функцию max(datetime) выводит только последнее сообщение первого раздела форума. Подскажите пожалуйста, как реализовать такое? Пример на http://wen.ru/forum Там после названия каждого раздела написанно время последнего сообщения в кадлом разделе
 
Ответить с цитированием

  #2  
Старый 06.02.2007, 15:22
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

У каждого поста в базе должен быть свой id, которы по идее AUTO_INCREMENT, т.е. каждый следующий больше предыдущего.

У каждого поста есть поле parent_id, в котором записан id раздела, где находится пост.

Отсюда:

SELECT * FROM `messages` WHERE `pagent_id` = '12' ORDER BY `id` DESC LIMIT 5

messages - таблица с ообщениями
12 - номер нужного раздела
5 - количество постов
 
Ответить с цитированием

  #3  
Старый 06.02.2007, 16:03
Muha
Познающий
Регистрация: 21.08.2006
Сообщений: 70
Провел на форуме:
424011

Репутация: 4
Отправить сообщение для Muha с помощью ICQ
По умолчанию

Цитата:
Сообщение от Helios  
У каждого поста в базе должен быть свой id, которы по идее AUTO_INCREMENT, т.е. каждый следующий больше предыдущего.

У каждого поста есть поле parent_id, в котором записан id раздела, где находится пост.

Отсюда:

SELECT * FROM `messages` WHERE `pagent_id` = '12' ORDER BY `id` DESC LIMIT 5

messages - таблица с ообщениями
12 - номер нужного раздела
5 - количество постов
Так он выведет только 5 последних постов раздела с номером 12, а мне нужно, чтобы один последний пост каждого раздела под каждым разделом
 
Ответить с цитированием

  #4  
Старый 06.02.2007, 16:15
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

ну так измени 5 на 1

и запрос делай столько раз, сколько разделов.

А вообще, Rtfm
 
Ответить с цитированием

  #5  
Старый 06.02.2007, 21:16
Muha
Познающий
Регистрация: 21.08.2006
Сообщений: 70
Провел на форуме:
424011

Репутация: 4
Отправить сообщение для Muha с помощью ICQ
По умолчанию

Спасибо! + тебе за то, что натолкнул меня на мысль.
Вывел вот таким запросом:
SELECT * FROM `posts` WHERE `idforums`='$forum' ORDER BY datetime desc

А до этого функцией max пытался
Оказывается таким лёгким запросом нужно было делать. Но LIMIT там лишнее оказывается.
Спасибо.
С уважением, Muha

Последний раз редактировалось Muha; 06.02.2007 в 21:20..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основные команды командной строчки. Егорыч+++ *nix 65 01.10.2009 17:27
Проблемы защиты мгновенной передачи сообщений Noman Мировые новости 0 29.12.2006 02:34
Перехват пейджинговых сообщений silveran Телефония и связь 12 16.09.2005 13:55



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ