Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porównanie nazw plików na dysku do tych, które są w MySQLu
KR2615
post
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ę:
  1. $dir = dir(/usr/share/pliki.");
  2. var_dump($dir);
  3. while (false !== ($entry = $dir->read())) {
  4. <------>// kwerenda mysql typu SELECT * FROM pliki where name = '$entry'
  5. <------>// Jeśli nic nie znajdzie, robi INSERTA
  6. }


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KR2615
post
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:
  1. $dir = dir(/usr/share/pliki");
  2. while (false !== ($entry = $dir->read())) {
  3. <------>$q = "INSERT IGNORE INTO `pliki` (`id`, `filename`, `done`, `contents`) VALUES (NULL, '$entry', '0', '0')";
  4. <------>mysql_query($q);
  5. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 09:18