Импотр тем и сообщений в определенный раздел

Автор svip, 30 июля 2010, 22:53:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

svip

форум 2.0 RC3
Есть массив:
$data[] = array(
'title' => 'Название топика',
'user' => 'Имя пользователя',
'post' => само сообщение
);
....

нужно все это заимпортить в определенный раздел в определенную тему. делаю так:


function insert($data,$boardId){
    mysql_select_db('smf');
    $first = 0; $last = 0; $user = 0;
    $sql = "INSERT INTO smf_topics VALUES ('', 0, ".$boardId.", ".$first.", ".$last.", ".$user.", ".$user.", 0, 0, 0, 0, 0 0, 0, 1)";
    mysql_query($sql);
      $topicId = getLastId();
      $c = 1;
      foreach($data as $post){
        $user = getUserId($post['user']);
        $email = getUserEmail($post['user']);
        $sql = "INSERT INTO smf_messages VALUES
            ('', ".$topicId.", ".$boardId.", 1279919479 , ".$user.", 3, '".$post['title']."',
            '".$post['user']."','".$email."', '127.0.0.1', 1, 0, 1, '".$post['post']."', 'xx', 1)";
        mysql_query($sql);
        if ($c == 1){
          $first = getLastIdMes();
          $mem_first = $user;
          $c=2;
        }
        $last = getLastIdMes();
        $mem_last = $user;
        print "+";
        flush();
      }
    $sql = "UPDATE smf_topics SET
      id_first_msg=".$first.",
      id_last_msg=".$last.",
      id_member_started=".$mem_first.",
      id_member_updated=".$mem_last."
      where id_topic=".$topicId;

    mysql_query($sql);

    mysql_select_db('forum');
  }




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

Видимо где то в базу еще что-то пишется о топиках. не могу найти где.

Ув. форумчане - подскажите.

P.S. Ув. модераторы, если тема не в том разделе - перенесите пожалуйста.


svip

Сделал. у темах показались кол-во сообщений,но кол-во топиков ==0


svip

блин бага тут:
$sql = "INSERT INTO smf_topics VALUES ('', 0, ".$boardId.", ".$first.", ".$last.", ".$user.", ".$user.", 0, 0, 0, 0, 0 0, 0, 1)";

num_replies вроде обновляется при "ремонте" на форуме.
и num_posts и num_topics в smf_boards.

или я не прав?

digger®

Вы же пишете
ЦитироватьВ итог в базу все кладется нормально

Если после импорта в базе все есть, а количество топиков = 0, копать в сторону num_posts и num_topics в smf_boards.

svip

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