Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> import TXT -> MySQL, okolo 600 plikow
stg
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.04.2006

Ostrzeżenie: (0%)
-----


Witam

Szukalem w wyszukiwarce i byly tylko tematy o wgrywaniu zawartosci pojedynczego pliku do bazy MySQL, na dodatek o scisle okreslonej strukturze (oddzielone przecinkami, srednikami itp)

Problem polega na tym, ze mam okolo 600 plikow tekstowych o przykladowej nazwie kk353.txt, kk734 itp. Kazdy z tych plikow to normalny plik tekstowy z opisem motocykli (z kropkami i przecinkami, bez srednikow). I nie mam pojecia jak je wgrac automatycznie do MySQL. Wgrywanie reczne oczywiscie odpada, bowiem za duzo czasu to zajmie.

W MySQL mam 4x pola:
- ID (INT), autoincrement
- Nazwa (VARCHAR), ktora stanowi nazwe pliku bez rozszerzenia (np. kk353)
- Opis (TEXT), ktory stanowi zawartosc tego pliku (w tym przypadku pliku kk353)
- Kategoria (VARCHAR), np. czesc plikow jest w kategorii Suzuki, a czesc w Kawasaki

LOAD DATA INFILE wgrywa pojedynczy plik. Laczenie wszystkich plikow w jeden odpada, bo rowniez zabierze to zbyt wiele czasu, a poza tym lepiej jest chyba dodawac mniejsze pliki, prawda?

W jaki sposob mozna to zrobic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
babejsza
post
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Przy założeniu, że wszystkie pliki są w jednym katalogu:

  1. <?php
  2.  
  3. $katalog=opendir("katalog_z_plikami/");
  4. while ($file = readdir($katalog)) {
  5. if ($file!="." and $file!=".."){
  6. $nazwa = explode(".", $file);
  7. mysql_query("LOAD DATA INFILE '$file' INTO TABLE twoja_tabela (Opis) SET Nazwa = '$nazwa[0]'");
  8. }
  9. }
  10.  
  11. ?>


To powinno działać, ale pewien nie jestem bo nie sprawdzałem. Przejżyj sobie dokładniej to load-data

Nie zalapalem o co chodzi z tymi kategoriami. Jeżeli to mają być katalogi o nazwach "Kawasaki", "Suzuki", w których są te pliki txt to zrób jeszcze jedną pętelkę.
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: 3.10.2025 - 00:42