parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Как узнать есть ли тело у сообщения?..

Никита Козин 12.05.2005 12:01

Есть две таблицы форума:
CREATE TABLE `fmessage` (
  `fmessage_id` int(10) NOT NULL auto_increment,
  `parent_id` int(10) NOT NULL default '0',
  `thread_id` int(10) NOT NULL default '0',
  `level` int(10) NOT NULL default '0',
  `hierarchy` text NOT NULL,
  `fmessage_type_id` int(1) NOT NULL default '0',
  `title` varchar(255) NOT NULL default '',
  `description` text,
  `author_name` varchar(255) NOT NULL default '',
  `author_id` int(10) NOT NULL default '0',
  `dt_published` datetime NOT NULL default '0000-00-00 00:00:00',
  `dt_edit` datetime NOT NULL default '0000-00-00 00:00:00',
  `is_published` tinyint(4) NOT NULL default '1',
  `is_active` tinyint(4) NOT NULL default '1',
  `is_default` tinyint(4) NOT NULL default '0',
  `rights_to_access` int(10) NOT NULL default '0',
  `only_registred` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`fmessage_id`),
  UNIQUE KEY `message_id` (`fmessage_id`),
  KEY `fmessages_type_id` (`fmessage_type_id`),
  KEY `parent_id` (`parent_id`),
  KEY `thread_id` (`thread_id`),
  KEY `level` (`level`),
  KEY `is_published` (`is_published`)
)

CREATE TABLE `fbody` (
  `fmessage_id` int(10) NOT NULL,
  `body` text NOT NULL,
  KEY `fmessage_id` (`fmessage_id`)
)
При добавлении сообщения в форум сначала записывается в fmessage, а затем в fbody.fmessage_id вставляется значение fmessage.fmessage_id, т.е. last_insert_id... Если текста у сообщения нету, значит в fbody ничего не пишется.

С этим все просто.

Но не могу сообразить как при выборке этого сообщения проверять есть ли в fbody запись с fbody.fmessage_id = $fmessage.fmessage_id
@getThreadMessages[thread_id]
^if(def $thread_id && ^thread_id.int(0) != 0){
	$result[^csql.table{
		SELECT
			fmessage_id AS message_id
			parent_id,
			level,
			title,
			author_name,
			author_id,
			dt_published,
			dt_edit,
			is_active
		FROM
			fmessages
		WHERE
			thread_id = $thread_id AND
			is_published = 1 AND
			fmessage_type_id = $MESSAGE_ID
		ORDER BY
			hierarchy DESC,
			dt_published DESC
	}]
}