Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]odczyt danych z pliku txt, z txt do mysql
Maciek1705
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


Witam serdecznie bardzo bym Was drodzy forumowicze prosił o pomoc gdyż nie wiem czy dobrze coś robię. Mianowicie chcę zrobić prosty program co po wybraniu pliku txt odczyta jego zawartość a później zawartość tą wstawi do bazy. Jeśli np wiersz o takim identyfikatorze by już istniał to żeby go nadpisał z update ował(IMG:style_emoticons/default/biggrin.gif)
plik txt wygląda tak
  1. id nazwa faktura data1 data2 data3 kwota
  2. 1 mmm 234 11-11-2010 12-12-2010 01-01-2011 100
  3. 2 nnn 235 10-10-2010 11-11-2010 12-12-2010 200

dane w pliku są rozdzielone znakami tabulacji.

a tak wygląda kod programu
  1. <?php
  2. $dane = file("nazwa_pliku.txt");
  3. if ($dane === false) {
  4. echo "Error - nie można odnaleść pliku";
  5. }
  6. else {
  7. for($i=0; $i<count($dane); $i++) {
  8. $dane[$i] = explode(" ", $dane[$i]);
  9.  
  10. $query = "insert into tabelka values ($dane[$i][0], $dane[$i][1], $dane[$i][2], $dane[$i][3], $dane[$i][4], $dane[$i][5], $dane[$i][6])";
  11. mysql_query($query)
  12. or die ("Wystąpiły problemy przy zapisywaniu danych");
  13. }
  14. }
  15. ?>

nie wiem czy dobrze to zrobiłem jak na stan obecny, nie wiem też także jak rozwiązać kwestie sprawdzania czy wiersz o podanym id istnieje i czy ma zostać nadpisany. Proszę o pomoc i wyrozumiałość (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Osobiście to bym zamienił ten separator na jakiś znak np. ';' (średnik),a jak już tab to zapisany w ten sposób '\t', po prostu nie mam do niego zaufania:) i nie jestem pewien, czy taka forma będzie poprawna na każdym systemie.
Co do sprawdzania czy istnieje, to:
  1. $qry='select count(*) from tabelka where id='.$dane[$i][0];

jeżeli zapytanie zwróci 1 to update, w innym wypadku dodaj.
I jeszcze te zmienne ($dane[$i][0]) wrzuciłbym w klamerki: {$dane[$i][0]}, bo w innym wypadku ci ich nie odczyta.

Ten post edytował bastard13 29.07.2010, 16:00:47
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: 4.10.2025 - 16:39