![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 10.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tak szukam, szukam i nie mogę znaleźć odpowiedniego rozwiązania. Może ktoś mnie naprowadzi na właściwe tory. Dodam, że nie zajmuję się programowaniem zawodowo - raczej z doskoku. Więc tak, mam kod, który pobiera wiersze z pliku csv:
Wszystko ładnie działa, poszczególne wiersze wskakują do sformatowanej tabelki i teraz chciałbym załadować te dane do tabeli w bazie MySQL. Kombinuję od jakiegoś czasu z LOAD DATA INFILE ale nie mogę tego poprawnie rozwiązać. Może jakieś sugestie ?. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Straszny misz-masz, jednocześnie wyświetlasz i dodajesz do bazy, co zdecydowanie utrudnia zrozumienie tego kodu. Tak naprawdę do kodu, którego zadaniem jest wyświetlić dane z pliku csv wystarczy dopisać 9 linijek (z uwzględnieniem nawiasów zamykających), aby te dane jednocześnie dodawać do bazy danych. Zastanowiłbym się jednak nad odseparowaniem tych dwóch funkcjonalności. Niestety w tej chwili skrypt nie ma prawa działać prawidłowo, bo w miejscu, w którym generujesz zapytanie SQL nie masz dostępu do informacji o nazwach poszczególnych kolumn tabeli w bazie danych - tablica $data jest tablicą jednowymiarową i zawiera dane pochodzące z aktualnie przetwarzanego wiersza pliku csv, Ty tymczasem używasz jej jako tablicy dwuwymiarowej (gdzieś tam w kodzie masz $data[0][0]). Proponowałbym najpierw wykonać import danych, tzn. przepisać dane z pliku do bazy danych, a później wyświetlić dane, ale już "te" pobrane z bazy. Żeby nie "zarżnąć" skryptu warto skorzystać z zapytania MULTI-INSERT i wykonywać je co np. 50 rekordów (to ze wzglądów na ograniczenia MULTI-INSERTA).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 10.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Straszny misz-masz, jednocześnie wyświetlasz i dodajesz do bazy, co zdecydowanie utrudnia zrozumienie tego kodu. Tak naprawdę do kodu, którego zadaniem jest wyświetlić dane z pliku csv wystarczy dopisać 9 linijek (z uwzględnieniem nawiasów zamykających), aby te dane jednocześnie dodawać do bazy danych. Zastanowiłbym się jednak nad odseparowaniem tych dwóch funkcjonalności. Niestety w tej chwili skrypt nie ma prawa działać prawidłowo, bo w miejscu, w którym generujesz zapytanie SQL nie masz dostępu do informacji o nazwach poszczególnych kolumn tabeli w bazie danych - tablica $data jest tablicą jednowymiarową i zawiera dane pochodzące z aktualnie przetwarzanego wiersza pliku csv, Ty tymczasem używasz jej jako tablicy dwuwymiarowej (gdzieś tam w kodzie masz $data[0][0]). Proponowałbym najpierw wykonać import danych, tzn. przepisać dane z pliku do bazy danych, a później wyświetlić dane, ale już "te" pobrane z bazy. Żeby nie "zarżnąć" skryptu warto skorzystać z zapytania MULTI-INSERT i wykonywać je co np. 50 rekordów (to ze wzglądów na ograniczenia MULTI-INSERTA). Dzięki za uwagi, ale potrzebuję poprawnego fragmentu kodu - jak utworzyć tablicę $data dwuwymiarową, by później dostać się do konkretnych pól w odpowiednich wierszach ?. Ok - rozwiązałem problem innym sposobem. Szkoda, że nie doczekałem się jakiejś konkretnej pomocy ze strony tego forum. Dzięki za wszelkie chęci (IMG:style_emoticons/default/wink.gif) . Zamykam temat. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 09:10 |