Прехвърляне на информаця в друга БД

Msecurity

Registered
Здравейте колеги
Имам един многооо голям проблем...
Трябва да прехвръля инфото на един сайт от една БД в друга.
Но в старата БД всичко е в 1 таблица с 5 колони... и е мазало като цяло...
А в новата 4 таблици и всичко си е разделено...
Та има ли някакъв вариант да отсея информацията на части... и да я прехвърля...
Ако всеки продукт го качвам отначало 1 по 1 ... ще ми отнеме поне месец...
 
eLite каза:
Нещо структурка на старата и новата бази от данни? :)

Да , моя грешка - извинявам се
Стара таблица:
Код:
Table - prod

Column	Type	Null	Default	Comments
categories_id	int(11)	No 	 	 
products_id	int(11)	No 	 	 
products_image	varchar(255)	No 	 	 
buyingrate	int(11)	No 	0 	 
products_name	varchar(255)	No 	 	 
products_description	text	No 	 	 
products_marka	varchar(255)	Yes 	NULL 	 
products_price	double	No 	 	 
pic1	varchar(250)	Yes 	NULL 	 
pic2	varchar(250)	Yes 	NULL 	 
pic3	varchar(250)	Yes 	NULL 	 
pic4	varchar(250)	Yes 	NULL 	 
pic5	varchar(250)	Yes 	NULL 	 
active	int(1)	No 	 	 
added_date	varchar(250)	No 	 	 
last_modify	varchar(250)	No 	 	 
description	text	No 	 	 
keywords	text	No 	 	 
add_ip	varchar(250)	No 	 	 
modify_ip	varchar(250)	No 	 	 
youtubes	text	No

Нови таблици:
Table - products

Код:
prod_id	int(10)	No 	 	 
prod_basic	int(5)	No 	 	 
prod_cat	int(3)	No 	 	 
prod_name	varchar(250)	No 	 	 
prod_serial	varchar(250)	No 	 	 
prod_img	varchar(250)	No 	 	 
prod_desc	text	No 	 	 
prod_price	varchar(100)	No 	 	 
prod_lprice	varchar(100)	No 	 	 
view	int(1)	No


Table - prod_char

Код:
prod_id	int(10)	No 	 	 
prod_col_1	text	No 	 	 
prod_col_2	text	No

Table - prod_info

Код:
prod_id	int(10)	No 	 	 
prod_marka	varchar(250)	No 	 	 
prod_size1	varchar(250)	No 	 	 
prod_size2	varchar(250)	No 	 	 
prod_size3	varchar(250)	No 	 	 
prod_size4	varchar(250)	No 	 	 
prod_size5	varchar(250)	No

Table - prod_multy

Код:
prod_id	int(10)	No 	 	 
img_1	text	No 	 	 
img_2	text	No 	 	 
img_3	text	No 	 	 
img_4	text	No 	 	 
img_5	text	No 	 	 
img_6	text	No 	 	 
video	text	No

От една таблица трябва инфото да се пръсне във 4... като основно от една колона се пръсна във други 10...
 
От старата таблица в колоната "description" има следната инфо - размери, описание, опции.

Като за тези неща в новата БД съм си направил нови колони.. за да е по подредено.
Но си нямам и на идея как да я отсея тази информация
 
[sql]INSERT INTO нова_таблица (колона,колона,колона)
SELECT колона, колона, колона FROM стара_таблица[/sql] и на четири пъти, за новите таблици трябва да си готов.
Естествено, направи си първо бекъп за всеки случай ;-)
 
Replace каза:
[sql]INSERT INTO нова_таблица (колона,колона,колона)
SELECT колона, колона, колона FROM стара_таблица[/sql] и на четири пъти, за новите таблици трябва да си готов.
Естествено, направи си първо бекъп за всеки случай ;-)

а как да остея инфото?
колона 1 - да се пръска инфото в други 3?
 
Просто, INSERT-ваш записите от първата таблица (посредством SELECT) в новите таблици. Ако искаш постни целия create table на таблиците
[sql]show create table prod;
show create table products;
....[/sql]
 
Това го разбрах нов виж:

В старата таблица в колоната "description" има размери, килограми, описание.

В новат таблица съм направил отделни колони за размерите, килограмите и описанието.

Всъщност от "description" информацията трябва да се отсее във "колона1", "колона2", "колона3" и т.н ?
 
Еми кажи как ги записваш, имат ли някакъв разделиел, или нещо :idea:
 
Replace каза:
Еми кажи как ги записваш, имат ли някакъв разделиел, или нещо :idea:

Не... само html форматиране ... и то на всеки продукт различно.. на единият тука одебелено, на другият не... на едният размерите са началото, на другият посредата ...
За това съм го и направил това разделение в новата ДБ ... всичко да е подредено и лесно за преглед
Няма ли как да се отсее по думи...
Например
Височина: 412 см и така едно по едно да си ги отсея за всички продукти...
 
Ами не, през SQL-а няма как да стане, има вариант с някой скрипт, с preg_match() да разделяш информацията, като разчиташ че след число следва да има мерна единица, но и това не е 100% решение, тъй като след това ще трябва (би следвало де) информацията да бъде прегледана и потвърдена (по някакъв начин).
По-лесно ще е просто да си оставиш полето, и да редактираш ръчно (при достатъчно голямо желание).
 
Replace каза:
Ами не, през SQL-а няма как да стане, има вариант с някой скрипт, с preg_match() да разделяш информацията, като разчиташ че след число следва да има мерна единица, но и това не е 100% решение, тъй като след това ще трябва (би следвало де) информацията да бъде прегледана и потвърдена (по някакъв начин).
По-лесно ще е просто да си оставиш полето, и да редактираш ръчно (при достатъчно голямо желание).

Това означава един по един да качвам на ново бая зор ще е :D

Ноо щом няма друг вариант това ще е...
 

Back
Горе