Перейти к контенту
  • 0

Выборка из БД самых новых тем


Вопрос

Подскажите пожалуйста, как сформировать 5 последних созданых тем.

И где можно почитать про структуру БД IPB ?

 

Пытался что то типа "SELECT * FROM `ibf_topics` ORDER BY `tid` DESC LIMIT 5",

но не получается. Первых 3 вроде и темы вылазит, но дальше уже 2 сообщения каких то.

 

Помогите пожалуйста

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Первых 3 вроде и темы вылазит, но дальше уже 2 сообщения каких то.

Everybody lies. Сообщений там быть не может.

 

И где можно почитать про структуру БД IPB ?

Имхо, она прозрачная. Развёрнутые переводы названий таблиц есть в прикреплённой теме, а если этого не хватит, то нужный вам запрос есть в моде для SSI в моей подписи.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Результат моего скрипта:

 

* Герой

* Гаррі Поттер за кулісами Напівкровного Принца

* Від: Хелоуін

* Проби до грифіндорської квідичної команди

* Сектумсемпра. Full version.

* Від: Чистокровка-Слизеринец.

 

Від: Хелоуін - >

Виявлена помилка. Якщо Вам невідомі причини помилки, спробуйте звернутися до розділів допомоги.

Посилання, по якому Ви потрапили на цю сторінку є битим або видаленим.

 

Пишет, что ссылка удалена

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Прошу прощение. не решилось.

 

Есть темка:

Тріо та Боні Райт у серпневому номері Entertainment Weekly (index.php?showtopic=10323)

Она отображается в списке. Написал туда сообщение. Теперь выше отображается: (index.php?showtopic=10323)

Від: Тріо та Боні Райт у серпневому номері Entertainment Weekly(index.php?showtopic=10324)

 

Хотя еще прикол, что мое сообщение там далеко не первое.

 

 

Мое сообщение добавилось в таблицу топикс. в description написано: "Від теми з ID: 10323"

 

Можно конечно же пофиксить подобным образом:

WHERE `state`='open' AND `description` NOT LIKE 'Від теми з ID:%'

но может есть какое то более аргументированое обьяснение и решение?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это ещё что, я использую связку портал+форум (mkportal), установил блок для портала с выводом последних тем, в которых были ответы (грубо говоря, активные темы) и некоторые темы просто не показываются, некоторые темы пропадают из списка после нескольких ответов, хотя темы с форума доступны, заапрувлены и открыты. Несколько дней сижу гляжу в код и не могу понять где собака зарыта.

 

Могу выложить код блока, возможно автору это чем-то поможет и кто-то из продвинутых пользователей сможет дать ответ, почему так происходит.

 

<?php
/*-------------------------------------------------------------------------
|  MKPortal IPB 2.1.x Last Posts Table with Permissions 2.1 (for center block) 17.05.2006
|  for MKP 1.1 x IPB 2.1.x
|  by visiblesoul <visiblesoul.net>
|  Support: http://www.visiblesoul.net/resources/forum/
+--------------------------------------------------------------------------

Want to show your appreciation for this block?
Link to me on your website using the link code below:

Get free <a href="http://www.visiblesoul.net/" target="_blank">MKPortal modules, blocks, hacks, and skins</a> at <a href="http://www.visiblesoul.net/" target="_blank">Visible Soul Web Design - Corpus Christi, Texas</a>!

---------------------------------------------------------------------------
Config:
--------------------------------------------------------------------------*/
$prefix = "ibf_";	   // Перфикс базы форума
$limit = 10;			// Число тем отоброжающих в блоке
$cutoff = 40;		   // число символов в названии
$startformat = "my";	// Формат даты
					// Options are short, time, small, normal, long or leave blank for default
$lastformat = "my";	 // формат даты последнего ответа
					// Options are short, time, small, normal, long or leave blank for default
/*------------------------------------------------------------------------*/

global $mkportals, $DB, $mklib, $Skin, $mklib_board, $ipsclass;

$content = "
<tr>
 <td>

<table class=\"moduleborder\" cellspacing=\"1\" width=\"100%\">
  <tr>
	<th class=\"modulex\" width=\"45%\" style=\"padding-left: 10px;\">Название темы</th>
	<th class=\"modulex\" width=\"25%\" style=\"padding-left: 10px;\">Последний ответ</th>
	<th class=\"modulex\" width=\"20%\" style=\"padding-left: 10px;\">Дата последнего ответа</th>
	<th class=\"modulex\" width=\"5%\" style=\"text-align: center;\">Просмотров</th>
	<th class=\"modulex\" width=\"5%\">Ответов</th>
  </tr>

";

	$DB->query("SELECT id, password, permission_array FROM ".$prefix."forums");
	while( $f = $DB->fetch_row() ) {
			$perms = unserialize(stripslashes($f['permission_array']));
			if ($mklib_board->check_permissions($perms['read_perms']) != TRUE or ($f['password'] != "" ) ) {
					$bad[] = $f['id'];
			} else {
					$good[] = $f['id'];
			}
	}

	if ( count($bad) > 0 ) {
			$qe = " AND forum_id NOT IN(".implode(',', $bad ).") ";
	}

					$DB->query("SELECT t.last_post, t.tid, t.title, t.views, t.posts, t.start_date, t.starter_name, t.last_poster_name, t.last_poster_id, t.forum_id , a.avatar_location, a.avatar_size, a.avatar_type

						FROM ".$prefix."topics t
						LEFT JOIN ".$prefix."forums f ON (t.forum_id = f.id)
						LEFT JOIN ibf_member_extra a on (t.last_poster_id=a.id)
						WHERE state!='closed' AND approved=1 AND (moved_to IS NULL or moved_to='') $qe
						GROUP BY t.title
						ORDER BY t.last_post DESC LIMIT 0,$limit");

			while ( $post = $DB->fetch_row() ) {
			$post['title'] = strip_tags($post['title']);
			$post['title'] = str_replace( "!" , "!" , $post['title'] );
			$post['title'] = str_replace( """, "\"", $post['title'] );
					if (strlen($post['title']) > $cutoff) {
							$post['title'] = substr( $post['title'],0,($cutoff - 3) ) . "...";
							$post['title'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$post['title'] );
					}

			$title = $post['title'];
			$tid = $post['tid'];
			$views = $post['views'];
			$posts = $post['posts'];
			$starter = $post['starter_name'];
			$lastname = $post['last_poster_name'];
			$lastid = $post['last_poster_id'];
			$forum_id = $post['forum_id'];
			$startdate  = $this->create_date($post['start_date'], $startformat);
			$lastdate  = $this->create_date($post['last_post'], $lastformat);

					$content .= "
<!-- topic begin -->
  <tr>
	<td class=\"modulecell\" style=\"padding-left: 3px; text-align: left;\">
	<img src=\"$this->images/hand.png\" border=\"0\" align=\"middle\" alt=\"\" />
	<a style=\"text-decoration: none; \" href=\"$mkportals->forum_url/index.php?showtopic=$tid&view=getnewpost\" title=\"Тему создал $starter от $startdate\">$title</a>
	</td>
	<td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">
<a href=\"$mkportals->forum_url/index.php?showuser=$lastid\">$lastname</a>

</td>

	<td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">$lastdate</td>
	<td class=\"modulecell\" style=\"padding-right: 10px; text-align: right;\">$views</td>
	<td class=\"modulecell\" style=\"padding-right: 10px; text-align: right;\">$posts</td>

  </tr>
<!-- topic end -->
					";
}

$content .= "
</table>

 </td>
</tr>

";

	unset($prefix);
	unset($limit);
	unset($cutoff);
	unset($startformat);
	unset($lastformat);
	unset($perms);
	unset($good);
	unset($bad);
	unset($qe);
	unset($post);
	unset($tid);
	unset($title);
	unset($views);
	unset($posts);
	unset($startdate);
	unset($lastdate);
	unset($starter);
	unset($lastname);
	unset($lastid);
	unset($forum_id);
	unset($icohot);
	unset($icohot2);
?>

 

ЗЫ. вроде не оффтоп :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.