PiratusXP Опубликовано 30 Сентября 2005 Жалоба Поделиться Опубликовано 30 Сентября 2005 Подскажите плизКакие SQL запросы к БД выполняются при открытии нового топика Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 3 Октября 2005 Жалоба Поделиться Опубликовано 3 Октября 2005 Возьми исходник какого нибудь бота и посмотри.[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(); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 3 Октября 2005 Жалоба Поделиться Опубликовано 3 Октября 2005 2PiratusXP Начинать надо с версии форума ! В 1.х - ответ на твой вопрос, это файл post_new_post.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
SAT Опубликовано 3 Октября 2005 Жалоба Поделиться Опубликовано 3 Октября 2005 и не стоит забывать инкрементировать счетчик от личности кого будет создаваться сообщение это делается функцией pf_increment_user_post_count в файле post.php(для 2.0.х) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vitovt Опубликовано 4 Октября 2005 Жалоба Поделиться Опубликовано 4 Октября 2005 а вот как бы чистого SQL запроса никто не знает? А то мне хоцца сделать так, стобы новости на моем сайте можно было обсуждать, причем если новость еще не обсуждалась, то создавать тему, а если обсуждалась, то просто добавлять сообщение. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 4 Октября 2005 Жалоба Поделиться Опубликовано 4 Октября 2005 vitovt, чистого это в смысле без функций ИПБ? mysql_query("INSERT INTO TABLE VALUES(' ',' ',...)");Изучи предыдущие посты или структуру таблиц БД. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vitovt Опубликовано 4 Октября 2005 Жалоба Поделиться Опубликовано 4 Октября 2005 vitovt, чистого это в смысле без функций ИПБ? mysql_query("INSERT INTO TABLE VALUES(' ',' ',...)");Изучи предыдущие посты или структуру таблиц БД.<{POST_SNAPBACK}> так в том то и дело, что сначала я начал изучать структуру таблиц в БД. Но так и не понял куда 9кроме как создание топика) вставлять само сообщение. Да так, чтобы оно было привязано к топику. какие там id или еще чего. Вот это не понятно. Все остальное элементарно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 4 Октября 2005 Жалоба Поделиться Опубликовано 4 Октября 2005 2vitovt обрати внимание на моё сообщение.В разных версиях форума структура таблиц разнится. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 4 Октября 2005 Жалоба Поделиться Опубликовано 4 Октября 2005 vitovt, нужно создавать топик, создавать сообщение, обновлять количество сообщений у пользователя, обновлять последнее сообщение в форуме и кто набацал это сообщениеА вообще почитай ips_kernel/class_db_mysql.php полезная штука. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vitovt Опубликовано 5 Октября 2005 Жалоба Поделиться Опубликовано 5 Октября 2005 а где собстна обновляеться общее кол-во сообщений? И еще я создаю тему скриптом, а на главной странице в определенном форуме последняя затронутая тема не та что создалась. в чем дело? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Garret Опубликовано 5 Октября 2005 Жалоба Поделиться Опубликовано 5 Октября 2005 И еще я создаю тему скриптом, а на главной странице в определенном форуме последняя затронутая тема не та что создалась. в чем дело?Для 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 ) ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.