Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> phpMyAdmin - domyślne opcje importu
Pafio
post 7.08.2014, 11:33:05
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.08.2014

Ostrzeżenie: (0%)
-----


Witam,

mam tabelę którą 2 razy dziennie oprózniam i importuje do niej 3 pliki csv (oddzielone średnikami), dane w plikach mają nagłówki. Domyślne opcje importu w phpMyAdmin dla pliku csv to: separator -przecinek, i "Liczba wierszy, by pominąć, począwszy od pierwszego wiersza" - zero.
Aby przyspieszyć import udało mi sie zmienić domyślny format pliku do importu na csv, oraz domyślny separator w polu "Kolumny oddzielone" na srednik.
Nie mogę jednak znaleźć opcji aby zmienić wartość domyślną w polu:
"Liczba wierszy, by pominąć, począwszy od pierwszego wiersza" . Tu domyślne jest 0, a chciałbym żeby było 1 ze względu na nagłówki w moich plikach csv
Czy da sie w jakiś sposób zmienić tę opcję ( np. edytując my.ini) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Shrapnel
post 9.08.2014, 14:15:14
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 1
Dołączył: 4.08.2014

Ostrzeżenie: (0%)
-----


A po co edytować? Po mojemu to zwyczajnie:

  1. LOAD DATA INFILE 'C:\\Users/twoja_sciezka/forum.csv' INTO TABLE `forum` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES (twoje_zmienne);


Powodzenia, daj znać czy działa.
Go to the top of the page
+Quote Post
Pafio
post 11.08.2014, 08:41:25
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.08.2014

Ostrzeżenie: (0%)
-----


Działa i łyka wszystkie 3 pliki na raz:

LOAD DATA INFILE '\aw.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;
LOAD DATA INFILE '\sm.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;
LOAD DATA INFILE '\ex.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;

dzięki, teraz szukam jakiegoś kontenera, żeby uruchamiać te zapytania dwuklikiem (te i kolejne moje, działające w tej chwili w postaci zapytań i tworzenia widoków, następnie kolejne zapytanie odnoszace się do utworzonego widoku i tworzenie nowego, wynikowego.
Zdecyduje się chyba na pare -plik php(z poziomu php tylko połączenie z bazą, następnie zapytania sql), oraz bat uruchamiający wykonanie pliku php w interpretorze (php for windows). Chodzi o to żeby koledzy z działu mogli robić raport w przypadku mojej nieobecności na swoich kompach zainstaluje im tylko php for windows, który niewiele waży.
Php liznałem tylko podstawy, masz moze jakiegoś gotowca?
Go to the top of the page
+Quote Post
Pyton_000
post 11.08.2014, 09:13:29
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Wystarczy że wrzucisz wszystkie zapytania do pliku SQL i odpalisz mysql z wiersza poleceń

W linuksie wystarczy

Kod
mysql -u user -p pass < plik.sql
Go to the top of the page
+Quote Post
Pafio
post 12.08.2014, 10:01:51
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.08.2014

Ostrzeżenie: (0%)
-----


Super, stworzyłem plik wsadowy, który łączy się z bazą i odpala zapytania zawarte w pliku sql. Po dodaniu ścieżki do katalogu bin do zmiennej środowiskowej path, można go odpalac z dowolnego folderu. Dane sa importowane obliczenia dokonują się jak poprzednio w postaci zapytanie-widok, jak poprzednio w związku z czym muszę teraz tylko tylko eksportować dane z ostatniego widoku do pliku csv.
Stworzyłem takie zapytanie:

SELECT `a`, `b`, `c`, `d`, `e` FROM `dane` INTO OUTFILE 'C:\\sql/RAPORT/raport.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n' ;

i tu mam problem bo w polach które są puste pojawia sie /N , a wolałbym zeby były puste. Eksportując ręcznie przez phpmyadmin pola te były wypełnione wartościa null jednak była tam opcja "Zamień null na : "
zostawiałem to pole puste i miałem plik jaki chciałem.

Jak bym nie kombinował z separatorami i zakończeniami linii to zawsze w pustych polach jest /n albo wszystkie dane są w jednej linijce.

HELP

Go to the top of the page
+Quote Post
Pyton_000
post 12.08.2014, 11:22:51
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


doda
FIELDS ESCAPED BY '""'

Ten post edytował Pyton_000 12.08.2014, 11:25:29
Go to the top of the page
+Quote Post
Pafio
post 13.08.2014, 07:28:57
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.08.2014

Ostrzeżenie: (0%)
-----


Pokazuje się błąd:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'' at line 1

FIELDS ESCAPED BY '""' - wydaje się ze nie może być dwóch cudzysłowów - #1083 - Field separator argument is not what is expected; check the manual

dobra, koniec zabawy z ustawianiami csv,
rozwiązałem problem inaczej, napisałem dodatkowe zapytanie, użyłem IFNULL, pozbyłem się tych wartosci, teraz eksportuje dobrze
dzięki wszystkim za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:51