Старый 14.08.2008, 00:57   #1 (permalink)
Новичок
 
Специализация: Новичок
Регистрация: 13.08.2008
Сообщений: 5
Репутация: 0
Номер ICQ 5911252
По умолчанию проблемка...

в общем... две таблицы, первая в кодировке latin1_swedish_ci , вторая в cp1251_general_ci , скрипт который перегоняет данные из первой таблицы во вторую... из-за различия кодировок таблиц, получается "бнопня"... что делать?

Последний раз редактировалось Delta; 14.08.2008 в 00:58..
Delta вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.08.2008, 07:01   #2 (permalink)
Новичок
 
Специализация: Переводчик
Регистрация: 29.05.2008
Сообщений: 13
Репутация: 5
Номер ICQ 568504
По умолчанию Ответ: проблемка...

Ну я бы экспортировал таблицу которую надо переделать... Сохранил бы файл в другой кодировке (конечно в зависимости от размера) и залил бы обратно например дампером, а если файл маленький то и простым запросом
__________________
Онлайн помощь по Веб-программированию (включяя vBulletin, DLE, Joomla, ets.) от 1$
Советы и подсказки БЕСПЛАТНО
Лео вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.08.2008, 11:30   #3 (permalink)
Новичок
 
Специализация: Новичок
Регистрация: 13.08.2008
Сообщений: 5
Репутация: 0
Номер ICQ 5911252
По умолчанию Ответ: проблемка...

дело в том что структура у таблиц разная...
Delta вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.08.2008, 12:33   #4 (permalink)
Местный
 
Специализация: Кодер
Регистрация: 14.06.2008
Сообщений: 292
Репутация: 142
Номер ICQ 701044
По умолчанию Ответ: проблемка...

Ну, тогда в том скрипте, который перегоняет, сделай перекодировку данных через iconv.
ascending вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.08.2008, 13:24   #5 (permalink)
Новичок
 
Специализация: Новичок
Регистрация: 13.08.2008
Сообщений: 5
Репутация: 0
Номер ICQ 5911252
По умолчанию Ответ: проблемка...

Цитата:
<?

/* ------- Настройка скрипта ---------------------------------------------- */
$dbhost = "localhost";
$dbuser = "underworld";
$dbpass = "";
$dbname = "underworld";

define("NUKE_PREFIX", "fusion"); // Префикс таблиц Spaiz-Nuke
define("DLE_PREFIX", "dle"); // Префикс таблиц Datalife Engine
/* ----------------------------------------------------------------------- */

define('C_DEFAULT', 1);
define('C_RESULT', 2);
define('C_ERROR', 3);

header("Expires: Wen, 15 Oct 2005 11:07:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");

ob_implicit_flush();
?>
<html><head>
<title>:: Php-Fusion -> Datalife Engine news converter ::</title>
<meta HTTP-EQUIV=Content-Type CONTENT="text/html; charset=windows-1251">
<style>
html, form{
padding:0;
margin:0;
}
body, table, tr, td{
font:11px Tahoma, Verdana;
}
.copyright{
font:11px Tahoma, Verdana;
color:#cccccc;
}
a{
text-decoration:none;

}
a:hover{
text-decoration:underline;
}
</style>
</head>
<body>
<?
if (!$db = @mysql_connect($dbhost, $dbuser, $dbpass)) die('<font size=+1>An Error Occurred</font><hr>Unable to connect to the database.');
if (!@mysql_select_db($dbname, $db)) die("<font size=+1>An Error Occurred</font><hr>Unable to find the database <b>$config_dbname</b> on your MySQL server.");
?>

<script>
var WidthLocked = false;
function lock_button(value) {
document.getElementById('process').disabled = value;
}

function java_output(str, color){
switch(color){
case 2: color = 'navy'; break;
case 3: color = 'red'; break;
default: color = 'black';
}

with(document.getElementById('logarea')){

if (!WidthLocked){
style.width = clientWidth;
WidthLocked = true;
}
str = '<FONT COLOR=' + color + '>' + str + '</FONT>';
innerHTML += innerHTML ? "<BR>\n" + str : str;
scrollTop += 14;
}
}

</script>

<table cellpadding=0 cellspacing=0 width=100% height=80%>
<tr><td valign=middle>

<form method=post>
<input type=hidden name=action value=process>
<table cellpadding=2 cellspacing=0 width=350 align=center border=0>
<tr><td style="font:11px Tahoma, Verdana" colspan=2>Прогресc:</td></tr>

<tr><td colspan=2>
<div id=logarea style="width: 100%; height: 140px; border: 1px solid #7F9DB9; padding: 3px; overflow: auto;"></div>
</td></tr>
<tr><td class=copyright width=285>
</td>
<td align=right width=65><input id=process type=submit value=" Старт " style="font:11px Tahoma, Verdana"></td>
</tr>
</table>
</form>

</td></tr>
</table>

<?
if ($_POST['action'] == "process") {
lock(true);
line("Запуск..");
line("");
create_news();
line("");
line("Готово!");
line("");
lock(false);
};

function lock($value = true) {
echo "<script>lock_button('$value')</script>";
}

function line($str, $color = C_DEFAULT) {
$str = preg_replace("/\s{2}/", " &nbsp;", $str);
echo "<SCRIPT>java_output('{$str}', $color);</SCRIPT>";
}

function create_news() {
$query = "SELECT * FROM ". NUKE_PREFIX ."_news";
$result = mysql_query($query) or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);

while ($item = mysql_fetch_array($result)) {

$title = $item['news_subject'];
$ss = $item['news_news'];
$fs = $item['news_extended'];

$query = "INSERT INTO ".DLE_PREFIX."_post (id, autor, date, short_story, full_story, xfields, title) VALUES ('', '', '', '$ss', '$fs', '', '$title')";
mysql_query($query) or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
};
line("Импортирование новостей завершено", C_RESULT);
}
?>
<body></html>

вот скрипт)) только я хз как...))

Последний раз редактировалось Delta; 14.08.2008 в 14:35..
Delta вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.08.2008, 17:41   #6 (permalink)
Местный
 
Специализация: Кодер
Регистрация: 14.06.2008
Сообщений: 292
Репутация: 142
Номер ICQ 701044
По умолчанию Ответ: проблемка...

А вообще наверно проще будет так: делаешь дамп первой таблицы, потом перекодируешь его в 1251, потом заливаешь во временную таблицу во все том-же 1251, потом этим скриптом переделываешь из временной таблицы в нужную, потом удаляешь временную. Просто iconv может не везде и не всегда корректно работать, особенно если вызывать через php. Не забудь посмотреть нормально ли сделался дамп (читаются ли русские символы в текстовом редакторе при выборе нужной кодировки), нормально ли сделалась переконвертация файла и нормально ли оно залилось.
Если дамп таблицы большой и качать его к себе не позволяет канал или трафик, то можно делать перекодировку на ходу, при помощи, например, sypex dumper (надо в настройках выставить кодировку forced->cp1251).
ascending вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Этот пользователь отблагодарил ascending за это сообщение:
Devil (22.08.2008)
Старый 22.08.2008, 05:39   #7 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 3,957
Репутация: 1879
Номер ICQ 599613
По умолчанию Ответ: проблемка...

Delta, тебе ascending, делоговорит в общем то
__________________
Мы те, кто мы есть
Мой личный блог
Devil вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка в FF Walk Я - новенький! 11 06.09.2008 13:56



Часовой пояс GMT +4, время: 23:24.
Powered by vBulletin® Version 64.43.1 Ω
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art