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

SQL запросы создания топика


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

Возьми исходник какого нибудь бота и посмотри.[1128316137:1128316211]Ну вот например:

$post = array(
  	 'author_id'   => 0, //$ibforums->member['id'] ? $ibforums->member['id'] : 0,
  	 'use_sig'     => 1,
  	 'use_emo'     => 1,
  	 'ip_address'  => "0.0.0.0",
  	 'post_date'   => time(),
  	 'icon_id'     => 0,
  	 'post'        => $parser->convert( array( TEXT    => $this->item['desc'],
              	 SMILIES => 0,
              	 CODE    => 1,
              	 HTML    => 0
                 )
                ),
  	 'author_name' => "News Bot",//$ibforums->member['id'] ? $ibforums->member['name'] : $ibforums->input['UserName'],
  	 'topic_id'    => "",
  	 'queued'      => 0,//( $this->obj['moderate'] == 1 || $this->obj['moderate'] == 3 ) ? 1 : 0,
  	 'post_htmlstate' => 0,//intval($ibforums->input['post_htmlstatus']),
    );
    
 $topic = array(
        'title'            => $this->item['title'],
        'description'      => '',
        'state'            => 'open',//$state
        'posts'            => 0,
        'starter_id'       => $post['author_id'],//$ibforums->member['id'],
        'starter_name'     => $post['author_name'],//$ibforums->member['id'] ?  $ibforums->member['name'] : $ibforums->input['UserName'],
        'start_date'       => time(),
        'last_poster_id'   => $post['author_id'],//$ibforums->member['id'],
        'last_poster_name' => $post['author_name'],//$ibforums->member['id'] ?  $ibforums->member['name'] : $ibforums->input['UserName'],
        'last_post'        => time(),
        'icon_id'          => 0,//$ibforums->input['iconid'],
        'author_mode'      => 0,//$ibforums->member['id'] ? 1 : 0,
        'poll_state'       => 0,
        'last_vote'        => 0,
        'views'            => 0,
        'forum_id'         => $this->fid,
        'approved'         => 1,//( $this->class->obj['moderate'] == 1 || $this->class->obj['moderate'] == 2 ) ? 0 : 1,
        'pinned'           => 0,//$pinned,
       );
       
 $DB->do_insert( 'topics', $topic );
 
 $post['topic_id']  = $DB->get_insert_id();
 $topic['tid']      = $post['topic_id'];
 //-------------------------------------------------
 // Update the post info with the upload array info
 //-------------------------------------------------
 $post['post_key']  = md5(microtime());
 $post['new_topic'] = 1;
 //-------------------------------------------------
 // Unqueue the post if we're starting a new topic
 //-------------------------------------------------
 $post['queued'] = 0;
 //-------------------------------------------------
 // Add post to DB
 //-------------------------------------------------
 $DB->do_insert( 'posts', $post );
 $post['pid'] = $DB->get_insert_id();

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

2PiratusXP

 

Начинать надо с версии форума !

 

В 1.х - ответ на твой вопрос, это файл post_new_post.php

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

и не стоит забывать инкрементировать счетчик от личности кого будет создаваться сообщение это делается функцией pf_increment_user_post_count в файле post.php(для 2.0.х)
Ссылка на комментарий
Поделиться на других сайтах

а вот как бы чистого SQL запроса никто не знает? А то мне хоцца сделать так, стобы новости на моем сайте можно было обсуждать, причем если новость еще не обсуждалась, то создавать тему, а если обсуждалась, то просто добавлять сообщение.
Ссылка на комментарий
Поделиться на других сайтах

vitovt, чистого это в смысле без функций ИПБ?

mysql_query("INSERT INTO TABLE VALUES(' ',' ',...)");

Изучи предыдущие посты или структуру таблиц БД.

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

vitovt, чистого это в смысле без функций ИПБ?

mysql_query("INSERT INTO TABLE VALUES(' ',' ',...)");

Изучи предыдущие посты или структуру таблиц БД.

 

так в том то и дело, что сначала я начал изучать структуру таблиц в БД. Но так и не понял куда 9кроме как создание топика) вставлять само сообщение. Да так, чтобы оно было привязано к топику. какие там id или еще чего. Вот это не понятно. Все остальное элементарно.

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

2vitovt

 

обрати внимание на моё сообщение.

В разных версиях форума структура таблиц разнится.

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

vitovt, нужно создавать топик, создавать сообщение, обновлять количество сообщений у пользователя, обновлять последнее сообщение в форуме и кто набацал это сообщение:D

А вообще почитай ips_kernel/class_db_mysql.php полезная штука.

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

а где собстна обновляеться общее кол-во сообщений? И еще я создаю тему скриптом, а на главной странице в определенном форуме последняя затронутая тема не та что создалась. в чем дело?
Ссылка на комментарий
Поделиться на других сайтах

И еще я создаю тему скриптом, а на главной странице в определенном форуме последняя затронутая тема не та что создалась. в чем дело?

Для 2.0.х: нужно обновить инфу в ibf_forums и обновить кэш:

  //----------------------------------------
 // Update forum cache
 //----------------------------------------
 
 $ibforums->cache['forum_cache'] = array();
	 
 $DB->simple_construct( array( 'select' => '*',
          'from'   => 'forums',
          'order'  => 'parent_id, position'
       )      );
 $DB->simple_exec();
 
 while( $fr = $DB->fetch_row() )
 {
	 $perms = unserialize(stripslashes($fr['permission_array']));
	 
	 $fr['read_perms']   = $perms['read_perms'];
	 $fr['reply_perms']  = $perms['reply_perms'];
	 $fr['start_perms']  = $perms['start_perms'];
	 $fr['upload_perms'] = $perms['upload_perms'];
	 $fr['show_perms']   = $perms['show_perms'];
	 
	 unset($fr['permission_array']);
	 
	 $ibforums->cache['forum_cache'][ $fr['id'] ] = $fr;
 }
 
 $std->update_cache( array( 'name' => 'forum_cache', 'array' => 1, 'deletefirst' => 0, 'donow' => 1 ) );
 $std->update_cache( array( 'name' => 'stats'      , 'array' => 1, 'deletefirst' => 0, 'donow' => 1 ) );

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

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

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

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

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

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

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

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

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

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

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

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