[MySQL][PHP]Import danych z CSV do Mysql usuwanie duplikatów |
[MySQL][PHP]Import danych z CSV do Mysql usuwanie duplikatów |
7.10.2020, 10:31:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.10.2020 Ostrzeżenie: (0%) |
Siema
Postaram się opisać problem w kwestii php jestem laikiem. Mam do zaimportowania Dane z pliku exel do których codziennie jest cos dodawane. Za pomocą phpmyadmin mogę sobie bez problemu zaimportować ten dane po przekonwertowaniu exela do CSV pytanie czy istnieje jakiś skrypt w php który będzie usuwał duplikaty albo nie będzie dodawała danych które już istnieją w tabeli bazy danych opierając się np. o PESEL |
|
|
7.10.2020, 10:55:46
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
PHP ma wbudowaną obsługę formatu CSV. Nie jest jakoś super intuicyjna, ale jest. Wygooglaj: "php csv".
Zakładając, że jesteś "skazany" na pliki Excela, najwygodniejszym rozwiązaniem byłoby dla Ciebie dać formularz z uploadem tych plików. Po załadowaniu, skrypt przetwarzałby sobie ten plik i robił co dusza zapragnie. Wygodniejszą alternatywą byłoby korzystanie z Google Docs, które ma swoje API. Mógłbyś taki dokument czytać skryptem np. co kilka minut automatycznie i robić co potrzeba bez żadnego wysyłania pliku. |
|
|
7.10.2020, 11:00:26
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.10.2020 Ostrzeżenie: (0%) |
kilka już znalazłem ale jak pisałem nie ogarniam do końca nie chce zakładać przez php nowej tabeli tylko żeby aktualizowało obecna w przypadku dubla nie dodawało
|
|
|
7.10.2020, 11:02:58
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
No to tak jak mówię, możesz po (lub podczas) odczytaniu pliku CSV robić co chcesz. Nie bardzo rozumiem w czym problem.
|
|
|
7.10.2020, 11:07:06
Post
#5
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) |
Najprościej bez skryptów to będzie chyba dodanie UNIQUE dla pola PESEL w bazie danych i ustawienie w opcjach PHPMyAdmin by ignorował importowanie danego rekordu gdy napotka zduplikowany indeks.
Ale, jeśli tylko przy tym ręcznym dodawaniu ma ingorować duplikaty, a one same mogą istnieć w bazie, to ta opcja odpada. |
|
|
7.10.2020, 11:08:12
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.10.2020 Ostrzeżenie: (0%) |
|
|
|
7.10.2020, 11:18:00
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Działa to tak, że czytasz sobie ten plik Excela w skrypcie PHP i ten plik jest interpretowany jako zwykła tablica. Na przykład niech plik Excel ma takie dane:
Kod imie,nazwisko,wiek Jan,Kowalski,33 Anna,Nowak,21 Henryk,Król,88 Skrypt PHP otwiera plik, który mu przesłałeś i albo każesz mu czytać wiersz po wierszu (oszczędzając pamięć) i masz wtedy przy każdej iteracji osobną tablicę: 1. ['imie', 'nazwisko', 'wiek'] 2. ['Jan', 'Kowalski', '33'] 3. ['Anna', 'Nowak', '21'] 4. ['Henryk', 'Król', '88'] Albo czytasz od razu cały plik i masz wszystkie dane naraz:
Co robisz z tymi danymi to już Twoja decyzja. Możesz narysować na ekranie kwiatki z liczbą listków równych długości imienia, na przykład. Albo możesz zrobić to co Ty chcesz, czyli wstawiać rekordy do bazy, sprawdzając przy tym czy dany rekord już istnieje. Jest też wbudowany sposób wrzucania CSV do bazy SQL: LOAD DATA INFILE. Jest dużo szybszy, ale masz mniej kontroli nad tym co się dzieje. |
|
|
7.10.2020, 12:29:28
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 7.10.2020 Ostrzeżenie: (0%) |
Olewamy temat
Znalazłem takie coś na forum
Niestety po wykonaniu daje 0 nie wiem czy mam jeszcze cos dodać oprócz nazw tabeli |
|
|
7.10.2020, 12:50:06
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Ale co Ty dokładnie chcesz zrobić? Tylko wrzucać do tabeli bez duplikatów? Wszystko tak jak tam jest, identycznie?
|
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 23:01 |