Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

PHPMyAdmin - import in MySQL
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHPMyAdmin
Subiectul anterior :: Subiectul următor  
Autor Mesaj
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Dum Noi 21, 2004 2:49 am    Titlul subiectului: PHPMyAdmin - import in MySQL  

Salutare tuturor,

Sper ca am ajuns la forumul potrivit pentru problema mea.

Mi-este foarte clar cum pot importa intr-o tabela din MySQL niste date dintr-un fisier sql, txt sau CSV cu ajutorul PHPMyAdmin-ului... dar problema este: cum as putea distribui aceste inregistrari in diferite categorii?

Concret: am instalat OSCommerce Max si am vre-o 1000 de produse de importat. In tabela "produse" din MySQL acestea sunt afisate "la gramada" iar descrierea acestora intr-un mod similar, in tabela "descrierea_produselor".

Cum as putea "aduce" aceste inregistrari/produse in baza mea de date distribuindu-le in categoriile aferente fara sa fiu nevoit sa le introduc una cate una din admin-ul OSCommerce-ului???

Sunt convins ca exista o solutie care sa-mi inlesneasca munca, dar oare care-ar putea fi? Puteti sa ma ajutati, va rog?

Va multumesc in avans.

Cele bune,
Remus.
Sus  
dducu



Data înscrierii: 17/Noi/2004
Mesaje: 16
Locație: Iasi

Trimis: Dum Noi 21, 2004 8:13 am    Titlul subiectului: import in MySQL  

Nu prea am inteles clar ce ai explicat, dar sa iti dau eu o posibila printr-un exemplu:
Sa presupunem ca ai inregistrarile intr-un fisier text pe c:\ (pet.txt de ex.) ca mai jos

Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Bowser Diane dog m 1989-08-31 1995-07-29

(fiecare inregistrare pe randul ei, iar valorile de la fiecare inregistrare separate prin tab)

Acum creezi o tabela (tot pet de ex.) in felul urmator:

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

Iar acum introduci toate inregistrarile pe care le ai in fisierul text in tabela ca mai jos (asta am inteles ca vrei de fapt):

mysql> LOAD DATA LOCAL INFILE "c:\pet.txt" INTO TABLE pet;


Iar acum cu "mysql>SELECT * FROM pet;" poti verifica ca intra-devar toate inregistrarile au fost aduse in tabela pet.

Voie buna!
Sus  
beeuser



Data înscrierii: 20/Mai/2004
Mesaje: 380

Trimis: Dum Noi 21, 2004 1:23 pm    Titlul subiectului:  

nu asta vroia omu`. Da noa in fine.
Ideea e ca fiecare produs face parte dintr-o categorie.
Este o tabela in os products_to_categories, care contine products_id si categories_id.
Asa ca ai nevoie de categories_id cand importi. Uita-te la baza de date si o sa-ti dai seama....Dar daca n-ai categories_id atunci esti in trouble man.
Calcula n-are de unde sa stie in ce categorie vrei tu sa fie un produs. :)
Sus  
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Dum Noi 21, 2004 2:19 pm    Titlul subiectului: aha, aha, aha  

Thanks beeuser, cam asta era baiu' Si fii atent: am products_to_categories cu doua shmecherii:

products_id
categories_id

Deci m-am mai linistit nitzel... am tot ce-mi trebe, dar acu' ce sa fac cu astea?

Ii dau un export la products_to_categories si apoi ma uit la codul ala (care arata de parca o umblat gaina pe-acolo). Si daca ma simt in forma completez cu celelalte produse pe care le am si mi le va distribui in categoriile de rigoare?

Daca da, norocu' meu!

Multam fain,
Cele bune.
Sus  
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Dum Noi 21, 2004 2:58 pm    Titlul subiectului: Uite:  

Continutul tabelei products_to_categories:

--
-- Table structure for table `products_to_categories`
--

CREATE TABLE `products_to_categories` (
`products_id` int(11) NOT NULL default '0',
`categories_id` int(11) NOT NULL default '0',
PRIMARY KEY (`products_id`,`categories_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `products_to_categories`
--

INSERT INTO `products_to_categories` VALUES (5, 6);
INSERT INTO `products_to_categories` VALUES (7, 6);
INSERT INTO `products_to_categories` VALUES (8, 6);
INSERT INTO `products_to_categories` VALUES (9, 5);

Deocamdata, am niste produse aiurea, pentru test, dar cum pot sa-i spun eu PHPMyAdmin-ului sa-mi distribuie produsele de care am nevoie in categorii tinand cont de categories_id sau products_id?
Sus  
beeuser



Data înscrierii: 20/Mai/2004
Mesaje: 380

Trimis: Lun Noi 22, 2004 1:15 am    Titlul subiectului:  

So....
Daca ai id-ul produsului si id-ul categoriei n-ar trebui sa ai probleme.
In primu rand tre sa iti faci niste categorii.

Daca in fisierul text nu ai specificat fiecarui produs, o categorie atunci e nasol, pt. ca n-ai cum sa asignezi automat produs->categorie.
Nu stiu unde nu intelegi....

Eu tind sa cred ca tu n-ai si categoria din care face parte...
da o bucata de fisierul de import sa vad.
Sus  
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Lun Noi 22, 2004 11:01 am    Titlul subiectului: Ok..  

Deci: pravalia mea virtuala, in halu' in care este ea acuma are o singura categorie care contine o sub categorie unde se afla 3 produse...
CAT>subcat>prod

Daca export tabela "produse" din toata shandramaua, uite ce structura are(ai dreptate eu nu vad sa fie amintita pe-acolo nici o categorie):

--
-- Table structure for table `products`
--

CREATE TABLE `products` (
`products_id` int(11) NOT NULL auto_increment,
`products_quantity` int(4) NOT NULL default '0',
`products_model` varchar(25) default NULL,
`products_image` varchar(64) default NULL,
`products_price` decimal(15,4) NOT NULL default '0.0000',
`products_date_added` datetime NOT NULL default '0000-00-00 00:00:00',
`products_last_modified` datetime default NULL,
`products_date_available` datetime default NULL,
`products_weight` decimal(5,2) NOT NULL default '0.00',
`products_status` tinyint(1) NOT NULL default '0',
`products_tax_class_id` int(11) NOT NULL default '0',
`manufacturers_id` int(11) default NULL,
`products_ordered` int(11) NOT NULL default '0',
`products_ship_price` decimal(15,4) NOT NULL default '0.0000',
PRIMARY KEY (`products_id`),
KEY `idx_products_date_added` (`products_date_added`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

--
-- Dumping data for table `products`
--

INSERT INTO `products` VALUES (7, 0, '', NULL, 20.0000, '2004-11-19 19:22:21', NULL, NULL, 0.00, 1, 0, 0, 0, 5.0000);
INSERT INTO `products` VALUES (8, 0, '', NULL, 20.0000, '2004-11-19 19:24:38', NULL, NULL, 0.00, 1, 0, 0, 0, 5.0000);
INSERT INTO `products` VALUES (9, 0, '', NULL, 20.0000, '2004-11-21 00:19:49', NULL, '2004-11-22 00:00:00', 0.00, 1, 0, 0, 0, 5.0000);

Eu, aici ar trebui sa modific, respectiv sa adaug produsele ca apoi sa import inapoi cu ajutorul PHPMyAdmin-ului. Dar daca modific liniile acestea pentru inca trei produse, in web ulterior, nu pot sa le vad deloc, darmite sa le mai puna si ordonat unde trebe'...

Multumesc,
Remus.
Sus  
beeuser



Data înscrierii: 20/Mai/2004
Mesaje: 380

Trimis: Lun Noi 22, 2004 1:25 pm    Titlul subiectului:  

Mai io nu inteleg ce tot zici acolo.
Ce ti-am cerut eu, si ce mi-ai dat tu...
Tu ai zis ca vrei sa importi dintr-un fisier .csv produse. Eu ti-am zis sa-mi dai cateva linii din fisierul csv, sa vad cum e structurat.
Legatura din produs->categorie in os e facuta de tabela products_to_categories. N-ai nici treaba cu tabela products. comprendre?
Daca in fisierul csv, din care vrei sa importi nu ai categoria pt. fiecare produs, atunci n-ai cum sa asignezi automat produs->categorie. Tre sa faci manual.
Da-mi numa cateva linii din csv
Sus  
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Lun Noi 22, 2004 1:39 pm    Titlul subiectului: Aha..  

Pai daca export un csv din tabela products_to_categories ii si mai mare beleaua...

Cam asa arata:

7;"6"
8;"6"
9;"6"

(eu am crezut ca aici trebuie sa fac modificarile pentru a adauga produse)

CSV-ul tabelei produse:

"7";"0";;NULL;"20.0000";"2004-11-19 19:24:38";NULL;NULL;"0.00";"1";"0";"0";"0";"5.0000"
"8";"0";;NULL;"20.0000";"2004-11-19 19:22:21";NULL;NULL;"0.00";"1";"0";"0";"0";"5.0000"
"9";"0";;NULL;"20.0000";"2004-11-21 00:19:49";NULL;"2004-11-22 00:00:00";"0.00";"1";"0";"0";"0";"5.0000"
Sus  
beeuser



Data înscrierii: 20/Mai/2004
Mesaje: 380

Trimis: Lun Noi 22, 2004 2:10 pm    Titlul subiectului:  

I give up.
Io credeam ca vrei sa importi.
Ce tot vorbesti de export?
.....
Sus  
rem



Data înscrierii: 10/Noi/2004
Mesaje: 62
Locație: Cluj-Napoca

Trimis: Lun Noi 22, 2004 5:39 pm    Titlul subiectului: Nuuuuuuuu...  

Uite care-i baiu':

Intr-adevar vreau sa import... Dar crede-ma ca habar n-am cum naiba sa fac chestia asta.

De aceea, am exportat din tabelele products si products_to_categories fisiere csv si sql sa le vad structura. De asta ma tot elucubrez cu exportu' asta...

Eu m-am gandit ca daca modific structura initiala a fisierului csv exportat, respectand acelasi sablon, ex:


"7";"0";;NULL;"20.0000";"2004-11-19 19:24:38";NULL;NULL;"0.00";"1";"0";"0";"0";"5.0000" - structura intiala a unui rand din tabela (ii dau ctrl+c si api ctrl+v de cate ori am nevoie, in fisierul meu)

si apoi schimb fiecare rand in parte:

"8";"0";;NULL;"20.0000";'etc...

si apoi "9"; "0";;NULL; "20.0000";, "etc... si

"10"; "0";;NULL; "20.0000";, "etc... ,

"11"; "0";;NULL; "20.0000";, "etc...

as putea popula baza de date mai usor. Practic eu asa avea de modificat doar numarul si descrierea acestora, din moment ce toate produsele sunt la acelasi pret, fabricant, marime, greutate...

Eu m-am gandit ca as putea da copy la un rand din tabela si apoi paste de cate ori am nevoie si apoi as putea sa-l modific intr-un fisier txt sau csv...si sa-l pun la loc cu toate dihaniile insirate acolo.

Dar de unde sa scot eu structura tabelului decat daca o export din PHPMyAdmin?

Altfel? Eu am intr-un fisier .doc toate produsele cu descrierea lor insirate... E clar ca nu pot baga doc-ul in baza de date, nu? Tre' sa-i dau o forma anume, specifica csv-ului sa-mi permita inserarea produselor in baza de date. Nu am un csv cu produsele, gata aranjat!

Se poate face asta daca respect sablonul csv-ului exportat din produse, dar nici pana la Craciunu' viitor nu-mi pune pe categorii, asa cum trebuie !

Beeuser, te rog sa ma scuzi daca sunt prea insistent. Nu vreau lucrul acesta.
Inteleg daca nu vrei sa-ti mai bati capul cu mine...

Cele bune si multumesc pentru timp.
Remus.
Sus  
beeuser



Data înscrierii: 20/Mai/2004
Mesaje: 380

Trimis: Lun Noi 22, 2004 5:59 pm    Titlul subiectului:  

Eu atat iti zic.
Problema ta e ca nu stii in ce categorie sa pui produsul. Si daca nu ai legatura intre produs si categorie in docul ala, e nasol. Automat nu ti le pune, ca nu stie unde? got it? nu stiu ce nu-ntelegi.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHPMyAdmin
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community