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%)
-----


Zmieniłem, wykonałem, mam nowe id=153
Finalnie zostawiłem taki kod:
  1. while (false !== ($entry = $dir->read())) {
  2. <------>if($entry != "." && $entry != "..") {
  3. <------> $q = mysql_query("SELECT * FROM `pliki` WHERE filename='$entry'");
  4. <------> if(!mysql_fetch_row($q)) {
  5. <------><------>mysql_query("INSERT INTO `pliki` (`id`, `filename`, `done`, `contents`) VALUES (NULL, '$entry', '0', '0')");
  6. <------> }
  7. <------>}
  8. }


Ten post edytował KR2615 28.09.2016, 08:59:26
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 - 11:03