Частый гость
Покинул форум
Сообщений всего: 156
Дата рег-ции: Май 2007
Откуда: Город Святого Петра
Помог: 0 раз(а)
[+]
|
Тут Переносил один магазин с shopscript в opencart и для удобство написал маленький скрипт который помог мне сделать все гораздо быстрее. Данный скрипт можно применить для любой системы. Его задача брать из "старой" таблицы структуру и данные, создавать нужную структуру для новой таблицы и формировать файлик с новой структурой и данными для нового сайта.
вот сам скрипт.
Перенос осуществляется потаблично.
PHP:
скопировать код в буфер обмена
<?PHP header("Content-Type: text/html; charset=utf-8"); /* * Берем таблицу из строго сайта и экспортируем ее в php массив * Получаем файл с названием таблицы. * Название файла (таблицы) пишем в 11 строку. $file="" * */ $file="SC_categories"; ?> <style> th{ border-right:solid 1px #E8BA8D; font-weight:normal; font-size:12px; padding:0 3px; } </style> <?PHP // Подключается наш файл include $file.".php"; /* * Сам массив... * Ключ массива - столбец новой таблицы * Значение - столбец старой таблицы * сначала перечисляются все столбцы которые есть в старой и новой таблице. * Пример: есть продукт в старой таблицы поле с его id productID а в новой product_id, * пишем "product_id"=>"productID". * Так же можно делать так. В новой таблице появилась поле article_product, но в старой его нет, а в новой оно обязательно. Тогда заполним его значениями из из столбца productID. "article_product"=>"productID" * И еще если в новой таблице есть поля который нет в старой можно просто сделать этому полю значение по умолчанию * "language_id"=>"2" (значение должно быть обязательно в кавычках ) * */ "category"=>"categoryID", "name"=>"name_ru", "sort"=>"sort_order", "language_id"=>"2" ); // Название новой таблицы $table="categories"; /* *Для себя выводил таблицу но можно ее убрать * */ //echo "<table style='width:100%'>"; $n=true; $cols="INSERT INTO `".$table."` ("; $val=" VALUES "; foreach ($$file as $v){ if($n){ //echo "<tr>"; foreach ($v as $k=>$e){ //echo "<th>".$k."</th>"; } } foreach ($category as $k => $v3){ $cols .= "`".$k."`,"; } } $n=false; //echo "<tr>"; $val .= "("; foreach ($v as $k => $v2){ //echo "<td>".$v2."</td>"; } } foreach ($category as $k => $v3){ }else{ } } $val .="), "; //echo "</tr>"; } //echo "</table>"; // Выводим наш запрос для проверки echo $cols.$val; // Создадим каталок sql вручную // И пишем в него файл с названием новой таблицы для последующего его импорта. ?>
Может кому пригодится.(Отредактировано автором: 21 Августа, 2014 - 11:55:11)
|