Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%)
|
Witam
Tak jak w temacie, muszę prześwietlić folder który mam na dysku, znaleść pliki których jeszcze nie ma w MySQLu i dodać je do bazy. Do tego pierwszego znalazłem taka pętlę:
Obawiam się jednak, ze w przypadku wielu setek plików to rozwiązanie może być zbyt mocno obciążające. Dlatego wpadłem na pomysł, żeby do drugiej tablicy pobrać wszystkie nazwy plików któe mam w MySQLu i porównać je funkcją taką jak ta: http://php.net/manual/pl/function.array-diff-uassoc.php Niestety nie pokazuje to równic, twierdzi, że żadne elementy w tych tablicach się nie pokrywają. Czy ktoś z Was ma pomysł, jak to rozwiązać? Z góry dzięki! |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%)
|
Przy obecnych 50 plikach nie byłoby to problemem, tym bardziej ze rocznie pojawia się ich ok. 250. Jedyny kłopot to taki, że INSERT IGNORE inkrementuje mi id. Wykonałem skrypt dwa razy, dodało jeden rekord a id mam 114 przy czym ostatnim prawidłowym id był 36. Nie podoba mi się to rozwiązanie. W razie czego podaje fragment kodu bo może coś skopałem:
|
|
|
|
KR2615 Porównanie nazw plików na dysku do tych, które są w MySQLu 28.09.2016, 07:35:33
kapslokk Jeśli w folderze będziesz miał dużo plików to może... 28.09.2016, 07:51:38
KR2615 Myślisz, że to będzie mniej zasobożerne niż porówn... 28.09.2016, 08:08:57
kapslokk Zależy dla ilu plików Ale w przypadku mojego rozw... 28.09.2016, 08:22:37
kapslokk Mozesz zmienic IGNORE na INSERT ... ON DUPLICATE K... 28.09.2016, 08:36:33
KR2615 Zmieniłem, wykonałem, mam nowe id=153
Finalnie zos... 28.09.2016, 08:48:40
kapslokk [SQL] pobierz, plaintext CREATE TABLE test(id ... 28.09.2016, 09:04:31 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 09:18 |