![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Potrzebuje przerobić skrypt importu plików csv. W skrypcie ma być mołziwość wybierania, które kolumny majązostać zaimportowane i żeby można było zmieniać ich kolejnośc. Jak zaplanowac taki skrypt? Macie jakieś pomysły? np dostarczam do skryptu tablice
I jak teraz zaplanować import wg takiej kolejności i układu? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
po co ta kolejność?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
To dowiedz się najpierw po co takie kombinacje i co ma być rezultatem, bo może nie potrzeba wcale kombinowania
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
W tych importach które ja najczęściej pisze to pierwszy wiersz jest wierszem zawierającym nagłówki, które identyfikują kolumny, kolumny najczęściej dzielą się na dwa typy wymagane i opcjonalne, wymagane to najczęściej te które w identyfikują dany wiersz, tworząc taki upload pojawia się kilka zachowań/scenariuszy, np. jak potraktować puste komórki, tzn czy maja czyścic dane w bazie, czy jednak maja być ignorowane, itp.
Ten post edytował aniolekx 17.03.2015, 09:56:08 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
czy nie można by zrobić listy funkcji
Następnie parsujemy dany plik i w zależności od potrzeby wywołujemy funkcje dla danej kolumny. Każda funkcja może generować ostateczny kod dla bazy MySQL, którey sklepaj w całośc i wykonuje? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
można, potem call_user_function i lecisz, tylko czy to ma sens?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
można, potem call_user_function i lecisz, tylko czy to ma sens? Mechanizm ten bedzie odpalany stosunkowo rzadko, wiec nie musi być super wydajny. Chodzi o to, że beda wrzucane różne pliki i za każdym razem trzebaby je modyfikowac, a tak mozna zrobic np dwa trzy gotowe ustawienia i odpada sporo pracy. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Masz pliki z csv z rożnymi kolejnościami kolumn i musisz wrzucić je do bazy w jednej słusznej kolejności ?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mechanizm ten bedzie odpalany stosunkowo rzadko, wiec nie musi być super wydajny. Chodzi o to, że beda wrzucane różne pliki i za każdym razem trzebaby je modyfikowac, a tak mozna zrobic np dwa trzy gotowe ustawienia i odpada sporo pracy. Kod $csvArray = []; // zrzucone dane z pliku CSV do tablicy $importuj = [1,5,2,9]; // zakładam, że to są indexy $wynik = []; // wynik po przekonwertowaniu array_map(function($row) use (&$wynik, $importuj) { $dane = array_map(function($i) use ($row){ return isset($row[$i]) ? $row[$i] : null; }, $importuj); array_push($wynik, $dane); }, $csvArray ); -------------------- Polecam MyDevil hosting idealny dla deweloperów
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[code]$csvArray = []; // zrzucone dane z pliku CSV do tablicy ... problemem jest to, że dla różnych kolumn trzeba czesto wykonywać różne operacje, które tylko dla danej kolumny wystepują :/ Przygotowałem następująca koncepcje, prosze o opinie
Ten post edytował kukix 31.03.2015, 17:46:54 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie masz dla wszystkich kolumn funkcji to musisz sprawdzać czy masz taką metodę ew. napisać uniwersjalną metodę __call() która będzie odpalana w przypadku braku funkcji.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
a wybiered
Jeśli nie masz dla wszystkich kolumn funkcji to musisz sprawdzać czy masz taką metodę ew. napisać uniwersjalną metodę __call() która będzie odpalana w przypadku braku funkcji. Braku funkcji nie przewiduje, ponieważ będą wybierane z listy, ale z czasem dorobie jakies zabezpieczenie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:14 |