Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][MySQL]Z pliku TXT do bazy (czy da radę?)
roobik
post
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam!
Przejdę od razu do rzeczy.
W tabeli mam takie pola:
id, txt1, txt2, txt3, txt4, date
Mam również plik tekstowy, z którego chciałbym "przerzucić" dane (o takiej właśnie strukturze) do tej tabeli. Przykład z pliku tekstowego:
1,trochę,tego,dużo,prawda,17.10.2010
I w ten sposób wyglądają linie w pliku TXT.
Czy istnieje sposób, za pomoca którego wrzucę te dane do tabeli?
Bardzo proszę o pomoc...
Go to the top of the page
+Quote Post
Piogola
post
Post #2





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


Cytat(roobik @ 14.02.2011, 00:10:46 ) *
Czy istnieje sposób, za pomoca którego wrzucę te dane do tabeli?

Istnieje taki sposób.
Go to the top of the page
+Quote Post
melkorm
post
Post #3





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Pierwszy link z google
Go to the top of the page
+Quote Post
roobik
post
Post #4





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Cytat(Piogola)
Istnieje taki sposób.

OK... Ale jak? Nie siedzę w php AŻ TAK dobrze (IMG:style_emoticons/default/sad.gif)

//edit
Nie zauważyłem, że pojawiła się jeszcze jedna odpowiedź...
Cytat(melkorm)
Pierwszy link z google

Niestety, ale nie znam zbytnio angielskiego. I (chyba) rczej nie ma tam tego, czego szukam (IMG:style_emoticons/default/sad.gif)

Ten post edytował roobik 14.02.2011, 00:30:15
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


  1. LOAD DATA INFILE 'ścieżka' INTO TABLE


Manual MySQL

Z resztą szukanie nie boli...
http://forum.php.pl/index.php?showtopic=170085&hl=

Ten post edytował fifi209 14.02.2011, 00:36:30
Go to the top of the page
+Quote Post
roobik
post
Post #6





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Zrobiłem tak:
  1. $sql = 'LOAD DATA LOCAL INFILE "dane.txt" INTO TABLE odp FIELDS TERMINATED BY "," ';
  2. $insertsql = mysql_query($sql);

lecz niestety, nie dodało nic do tabeli (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Rozumiem, że "dane.txt" jest gdzieś w folderach mysql? Jeżeli nie to podaj PEŁNĄ ŚCIEŻKĘ.
Go to the top of the page
+Quote Post
roobik
post
Post #8





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Plik dane.txt jest na serwerze (w głównym katalogu). Plik z zawartością (powyżej w moim poście) jest również na serwerze w katalogu głównym
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(roobik @ 14.02.2011, 14:33:42 ) *
Plik dane.txt jest na serwerze (w głównym katalogu). Plik z zawartością (powyżej w moim poście) jest również na serwerze w katalogu głównym

No i co z tego, że jest na serwerze?

Jeżeli mysql startuje z powiedzmy /mysql/ a plik masz w ~/dane/dane.txt
To nijak ścieżka "dane.txt" pasuje bo będzie się odwoływała do /mysql/dane.txt zamiast ~/dane/dane.txt
Go to the top of the page
+Quote Post
roobik
post
Post #10





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Nie wiem, czy o to chodzi, ale zrobiłem tak:
  1. $sql = 'LOAD DATA LOCAL INFILE "/_public_html/dane.txt" INTO TABLE odp FIELDS TERMINATED BY "," ';2.$insertsql = mysql_query($sql);

ale dalej nie tego (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #11





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Możesz pokombinować jeszcze z dodaniem LINES TERMINATED BY
a to LOCAL jak dla mnie niepotrzebne

Ten post edytował fifi209 14.02.2011, 15:06:28
Go to the top of the page
+Quote Post
roobik
post
Post #12





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


  1. 1.$sql = 'LOAD DATA INFILE "/_public_html/dane.txt" INTO TABLE odp LINES TERMINATED BY "," ';2.$insertsql = mysql_query($sql);

również nic (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
sada
post
Post #13





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Tak najprościej bez połączenia z bazą , zmień tylko nazwy pól w zapytaniu

  1. $tekst='1,trochę,tego,dużo,prawda,17.10.2010
  2. 2,trochę,tego,dużo,prawda,18.10.2010
  3. 3,trochę,tego,dużo,prawda,19.10.2010';
  4.  
  5.  
  6.  
  7. $tekst=nl2br($tekst);
  8. $tablica_wierszy=explode('<br />',$tekst);
  9. foreach($tablica_wierszy as $wiersze){
  10. $wyrazy=explode(',',$wiersze);
  11.  
  12.  
  13. $id=$wyrazy[0];
  14. $wyraz1=$wyrazy[1];
  15. $wyraz2=$wyrazy[2];
  16. $wyraz3=$wyrazy[3];
  17. $wyraz4=$wyrazy[4];
  18. $data=$wyrazy[5];
  19.  
  20. echo $id.' '.$wyraz1.' '.$wyraz2.' '.$wyraz3.' '.$wyraz4.' '.$data.'<br />' ;
  21. $sql_scal= "INSERT INTO tabela (ttt1 ttt2 ttt3 ttt4 ttt5 ttt6) VALUES('$id', '$wyraz1', '$wyraz2' ,'$wyraz3' ,'.$wyraz4', '$data')";
  22. }
Go to the top of the page
+Quote Post
Fifi209
post
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Co do skryptu - aby wyglądał "ładniej" polecałbym przy:
  1. explode(',', $wiersze);


dodać list

A to nl2br można sobie darować i wpisać \r\n lub \r

Oczywiście nie trzeba pisać o marnej wydajności twojego skryptu. Nawet mały plik ~60MB spowoduje "zabicie" PHP.

Ten post edytował fifi209 14.02.2011, 22:54:12
Go to the top of the page
+Quote Post

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: 23.08.2025 - 12:17