SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.10.2011 17:36:56

Deagleby
Участник
Зарегистрирован: 26.06.2011
Сообщений: 3

Помогите разобраться с БД (проблема с конвертацией форума)

Здравствуйте уважаемые знатокиsmile мне очень нужна ваша помощь.

У меня проблема с конвертацией форума ucoz (оф. сайт: ucoz.ru) на dle (оф. сайт: dle-files.ru)

История: (мои действия)
1) сделал бекап своего сайта с ucoz

2) вытащил от туда нужные мне файлы, а именно:
а) forump.txt - сообщения
б) forum.txt - темы
в) fr_fr.txt - форумы, подфорумы (как я понял)
и.т.п

3. Скачал с интернета конвертер (ucoz ==>>> dle) состоящих из множества мелких файлов
4. Прописал в конвертере необходимую информацию

config.php:
  <?php
  $dblocation = "localhost";
  $dbname = "Дб назывние";
  $dbuser = "Тут указываем узера";
  $dbpasswd = "пароль";
  $prefix = "dle";
  $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  if(!$dbcnx)
  {
  exit("Сервер базы данных сейчас недоступен. Повторите попытку позже.");
  }
  if(!@mysql_select_db($dbname, $dbcnx))
  {
  exit("База данных недоступна. Обратитесь к администратору для решения проблемы.");
  }
  ?>

5. Потом в скрипте convert_forump.php (конвертация сообщений)

<?php

include "config.php";

$filename = "../ucoz/_s1/forump.txt";

$fd = fopen($filename, "r");

$i = 0;


mysql_query("SET CHARACTER SET cp1251");

echo "Лог ковертирования<br>";
    while (!feof ($fd))
        {

            $bufer[$i] = fgets($fd, 4096);
           
            $bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
                        
            $arr = explode("|", $bufer[$i]);
           
            $arr[4] = preg_replace("#\'#i", "`", $arr[4]);
           
            $i++;

            $info = "SELECT * FROM {$prefix}_forum_topics WHERE uid = $arr[1]";

            $a = mysql_query($info);

            $dat_e = date('Y-m-d G:i:s' ,$arr[2]);
if($arr[4] != ""){
            while($id = mysql_fetch_array($a)){

            $forumid = $id[tid];
}

            $query = "INSERT IGNORE INTO {$prefix}_forum_posts (`pid`, `topic_id`, `post_text`, `post_author`, `post_date`, `post_ip`, `is_register`, `is_count`) VALUES
(0, '$forumid', '$arr[4]', '$arr[6]', '$dat_e', '$arr[12]', '$arr[5]', 1);
";
            $result = mysql_query($query);
           
            if(!$result) { echo ("<font color=red>MySQL вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysql_error()."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "Сообщение пользователя «$arr[6]» успешно сконвертировано<br>";
}

        }
       
fclose($fd);

echo "Конвертация сообщений завершена!<br>";

?>


7. Изменил некоторые данные, а именно:
поменял
$bufer[$i] = iconv("UTF-8", "Windows-1251", "$bufer[$i]");
на
$bufer[$i] = iconv("cp1251", "Windows-1251", "$bufer[$i]");

8. В текстовом файле forump.txt поменял кодировку с помощью программы Notepad++ на cp1251 ибо движок форума от dle поддерживает только 1251, а у ucoz utf-8

8. Запустил конвертер, прописав
...../convert/convert_forump.php

На странице отображает вот так:
Лог ковертирования
Сообщение пользователя «b1onik» успешно сконвертировано
Сообщение пользователя «StalnoyMonstr» успешно сконвертировано
Сообщение пользователя «MadDog» успешно сконвертировано
Сообщение пользователя «Deagleby» успешно сконвертировано
Сообщение пользователя «Deagleby» успешно сконвертировано
Сообщение пользователя «MadDog» успешно сконвертировано
Сообщение пользователя «Lixolese» успешно сконвертировано
Сообщение пользователя «Zod_gg» успешно сконвертировано
Сообщение пользователя «Адьютант» успешно сконвертировано
Сообщение пользователя «Адьютант» успешно сконвертировано
Сообщение пользователя «Deagleby» успешно сконвертировано
Сообщение пользователя «Deagleby» успешно сконвертировано
Сообщение пользователя «ageofempires» успешно сконвертировано
.....и.т.п
...и.т.п
Конвертация сообщений завершена!

Захожу на базу данных, а там

Вот скрин:
http://hoi2.ru/098709555/1.png

Если посмотреть, все вроде с конвертировалось отлично, но есть проблема..
topic_id показывает "0", и так во всех сообщениях, а он должен отоброжать id темы

Как это можно исправить??? пожалуйста помогите!

Вот кстати кусочек из forump.txt

37579|28|1283249437|0|Как эффективней бороться с партизанами?? и если вводить код norevolts, то ничего не изменяется....подскажите плиз|1|b1onik|1||0|||109.172.31.127|0||4247|1283249437
37094|1575|1282840190|0|Подскажите, а как перенести Вику-2 в hoi3 ? <img rel="usm" src="http://www.hoi2.ru/Smiles/polkovnik.gif" border="0" align="absmiddle" alt="smile">|1|StalnoyMonstr|1||0|||94.246.126.80|0||4224|1282840190
37279|1822|1283089345|1|Тут заметил с удивлением, что было 39 а стало 15. <p> <img src="http://hoi2.ru/_fr/17/3326439.jpg" border="0" alt=""> <p> Диг, ты покромсал?|1|MadDog|1||0|||195.98.179.2|0|0|2559|1283089345

Отредактированно Deagleby (02.10.2011 17:38:49)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson