![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 14.11.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam plik tekstowy z danymi. Każdy wiersz ma kilkanaście pól, pola są oddzielone znakiem np. ^ . Muszę teraz z każdego wiersza wybrać określone pola i wstawić je do różnych tabel w bazie. Pierwsze dwa pola do jednej tabeli, 4 kolejne do innej a kilka innych pól do trzeciej tabeli. Przy czym np. pierwsze 2 pola w całym pliku mają tylko 3 różne wartości (w pozostałych wierszach się powielają). Podobnie jest w pozostałych polach.
Wczytałem plik, rozbiłem na wiersze i pola, ale teraz nie wiem jak to wszystko pogrupować i zrobić z tego 3 zapytania do bazy. -------------------- Projektowanie, tworzenie, optymalizacja i pozycjonowanie efektywnych stron www dla biznesu.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Sprawa dla mnie jest prosta, parsujesz plik:
I dzielisz dane na kilka plików w układzie takim, jakim chcesz to mieć (kwestia odpowiednio dobranych instrukcji warunkowych w pętli while), następnie każdy z tych plików dodajesz do bazy zapytaniem LOAD DATA INFILE. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 14.11.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za chęć pomocy ale tyle to ja wiem. Nie wiem jak porozbijać jedną linijkę na kilka rożnych zmiennych tak aby można je potem było przypisać do zapytania SQL.
Może bardziej sprecyzuje pytanie. Nie chodzi mi o zwykłe odczytanie pliku tekstowego. Wiersz w pliku powiedzmy wygląda tak: ^id_marki^marka^nazwisko^rok^miasto^cos_tam1^cos_tam2^cos_tam3^ Ponieważ plik nie jest wielki (kilkadziesiąt kilobajtów) i będzie wczytywany raz na tydzień wczytuję go od razu w całości do tablicy. Nie wiem tylko: id_marki i marka muszę wczytać do tabeli , ale może być potrzeba dodania rekordu, aktualizacji lub jego usunięcia, w dodatku te dane powielają się w całym pliku (są tylko 3 unikalne wartości). Podobnie jest przy kolejnych dwóch tabelach. Tylko, że tam jeden rekord zawiera 4 lub 7 różnych wartości, przy czym jedna tabela zawiera dane które już występują w innych tabelach (są to identyfikatory). Ten post edytował comzit 16.12.2009, 19:10:32 -------------------- Projektowanie, tworzenie, optymalizacja i pozycjonowanie efektywnych stron www dla biznesu.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Użyj explode:
- teraz sobie zmienne np. $marka zapisuj do oddzielnych plików i ustaw takie warunki, jakie chcesz Cytat może być potrzeba dodania rekordu, aktualizacji lub jego usunięcia - dodanie lub aktualizację załatwisz zapytaniem REPLACE, natomiast klucze rekordów które masz usunąć wrzucasz do oddzielnej tablicy, potem wystarczy proste zapytanie: delete from tabela where klucz in(1,2,34,56,...)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:46 |