Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z pobraniem danych z pliku
Chrom
post 14.01.2006, 02:21:41
Post #1





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


Witam wszystkich,
Jestem laikiem w wielu sprawach i mam problem potrzebuję skopiować plik.txt do bazy danych tabela stan korzystam z funkcji LOAD DATA INFILE przez stronę php. Plik poprawnie ładuje się na serwerze w foderze raporty. NIestety nie mogę załadować go do bazy danych starałem sie samale niestety bez pomocy chyba sie nie obejdzie. tu podaje kod jaki zastosowałem
  1. <?php
  2.  
  3. $zapytanie = "LOAD DATA INFILE '". $_SERVER[DOCUMENT_ROOT] . "/raporty/.$plikuzytkownika_name' INTO TABLE stan FIELDS TERMINATED BY '' LINES TERMINATED BY 'rn' (nr, wz wp, wo, co )";
  4. mysql_query($zapytanie);
  5.  
  6. ?>


Zmieniałem adres do pliku na zmienną z plikiem, zmienna bez problemu plik pobierabo mogę go zobaczyć na stronie itd itd. Niestety nic z tego nie wychodzi czy ktoś się orientuje w czym jest problem
Z góry dzięki za okazane zainteresowanie moim problemem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
SongoQ
post 14.01.2006, 05:56:33
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


A jaki Ci blad wywala?


--------------------
Go to the top of the page
+Quote Post
aleksander
post 14.01.2006, 08:42:10
Post #3





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


robiąc mały OT: nazwy kluczy tablicy asocjacyjnej zapisujemy w cudzysłowach lub apostrofach:
  1. <?php
  2. $_SERVER[DOCUMENT_ROOT]; // zle
  3. $_SERVER['DOCUMENT_ROOT']; // dobrze
  4. $_SERVER["DOCUMENT_ROOT"]; // dobrze
  5. ?>
Go to the top of the page
+Quote Post
Chrom
post 14.01.2006, 12:10:09
Post #4





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


W tym problem że nie wywala nic żadnego błędu tak jakby wszystko było ok.
wstawiłem apostrofy i to samo. pobranie pliku ok parsowanie ok a wczytać nie chce.
Co dziwniejsze przez PMA poszło tylko bez przypisania do kolumn, ale ja potrzebuję zrobić to przez php i z przypisaniem.

Ten post edytował Chrom 14.01.2006, 12:10:52
Go to the top of the page
+Quote Post
aleksander
post 14.01.2006, 12:11:18
Post #5





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


użyj mysql_error" title="Zobacz w manualu php" target="_manual()
Go to the top of the page
+Quote Post
Chrom
post 14.01.2006, 12:24:49
Post #6





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


dzieki za zainteresowanie
wypisałem:
  1. mysql_select_db('sam');
  2. echo mysql_errno() . ": " . mysql_error(). "\n";
  3.  
  4. mysql_select_db('sam');
  5. mysql_query('SELECT *
  6. FROM stany'); echo mysql_errno() . ": " . mysql_error() . "\n";

i wyświetla 0: baza i tabela jest.
może lepiej jak przeslę cały kod njpierw plik; nazwa: RAP_M_Xl2005_Bluszczańska74_w1.txt treść:
Cytat
05.11.25 00:20/5 RAP. ZA UBIEGLY MIESIAC-'Bluszczanska A'  334
Zuzycie energi od pocz. mies. 000283.5GJ
Przyrost od pocz. miesiaca dla lokalu:
Nr.  Woda zimna:  Woda ciepla:  Woda oligoc.: Cent.o.:
1    0001.079      0000.886        0000.055    0000.875
2    0008.176      0006.997        0001.019    0001.538
3    0003.552      0005.426        0000.000    0001.056
4    0001.764      0002.884        0000.222    0001.873
5    0001.132      0001.071        0000.209    0000.408
6    0001.031      0000.467        0000.033    0000.720
7    0001.416      0000.799        0000.033    0000.002
8    0006.054      0003.224        0000.000    0001.283
9    0001.105      0000.906        0000.000    0001.637
10    0000.645      0000.103        0000.000    0000.415
11    0000.199      0000.136        0000.000    0000.397
12    0003.771      0003.778        0000.975    0000.117
13    0000.000      0003.764        0000.000    0001.484

jest to fragment ponieważ nagłówki są różnej długości to każdy raportujący podzielnik ma swoj adnotację w specjalnej tabeli bazy danych z której pobiera wartości do obięcia. cała strona wygląda tak:
  1. <?
  2. require "txt/conect.txt";
  3. connection();
  4. $table_name = "budynki";
  5. // $plikuzytkownika - miejsce tymczasowej lokalizacji pliku na serwerze WWW
  6. $plikuzytkownika = $HTTP_POST_FILES['plikuzytkownika']['tmp_name'];
  7.  
  8. // $plikuzytkownika_name - nazwa pliku w systemie użytkownika
  9. $plikuzytkownika_name = $HTTP_POST_FILES['plikuzytkownika']['name'];
  10.  
  11. // $plikuzytkownika_size - wielkość pliku w bajtach
  12. $plikuzytkownika_size = $HTTP_POST_FILES['plikuzytkownika']['size'];
  13.  
  14. // $plikuzytkownika_type - typ pliku w systemie MIME, 
  15. $plikuzytkownika_type = $HTTP_POST_FILES['plikuzytkownika']['type'];
  16.  
  17. // $plikuzytkownika_error - kod błędu związanego z wysyłaniem pliku
  18. $plikuzytkownika_error = $HTTP_POST_FILES['plikuzytkownika']['error'];
  19.  
  20. // plikuzytkownika_error został dodany do php 4.2.0
  21. // ten kod można stosować z nowszymi wersjami
  22. if ($plikuzytkownika_error > 0)
  23. {
  24. echo 'Wystąpił problem: ';
  25. switch ($plikuzytkownika_error)
  26. {
  27. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  28. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  29. case 3: echo 'Plik wysłany tylko częściowo'; break;
  30. case 4: echo 'Nie wysłano żadnego pliku'; break;
  31. }
  32. }
  33.  
  34.  
  35. // umieszczenie pliku w zadanej lokalizacji
  36. $lokalizacja = 'raporty/'.$plikuzytkownika_name;
  37.  
  38. if (is_uploaded_file($plikuzytkownika)) 
  39. {
  40.  if (!move_uploaded_file($plikuzytkownika, $lokalizacja))
  41.  {
  42. echo 'Problem: Plik nie może być skopiowany do katalogu';
  43.  }
  44. } 
  45. else 
  46. {
  47. echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: '.$plikuzytkownika_name;
  48. }
  49. echo "<h2>Szczególy uploadu raportu</h2>";
  50. $pocieta_nazwa = "$plikuzytkownika_name";
  51. list($nazwa_pliku, $rozszezenie) = explode(".", $pocieta_nazwa);
  52. $data = "$nazwa_pliku";
  53. list($rap, $m, $miesioc_rok, $rap_budynek, $rap_wezel) = explode("_", $data);
  54. $rap_bud = $rap_budynek;
  55. if ($rap_budynek == Bluszczańska74){$rap_budynek = "Bluszczanska74";}
  56. elseif ($rap_budynek == Bluszczańska76){ $rap_budynek = "Bluszczanska76";}
  57.  
  58. $file = explode("2", $miesioc_rok);
  59. $rok = $file[1];
  60. $mies = $file[0];
  61. $rok = "2$rok";
  62. if ($mies == l){ $miesiac = "styczeń";}
  63. elseif ($mies == ll){ $miesiac = "luty";}
  64. elseif ($mies == lll){ $miesiac = "marzec";}
  65. elseif ($mies == lV){ $miesiac = "kwiecień";}
  66. elseif ($mies == V){ $miesiac = "maj";}
  67. elseif ($mies == Vl){ $miesiac = "czerwiec";}
  68. elseif ($mies == Vll){ $miesiac = "lipiec";}
  69. elseif ($mies == Vlll){ $miesiac = "sierpień";}
  70. elseif ($mies == lX){ $miesiac = "wrzesień";}
  71. elseif ($mies == X){ $miesiac = październik;}
  72. elseif ($mies == Xl){ $miesiac = listopad;}
  73. elseif ($mies == Xll){ $miesiac = grudzień;}
  74.  
  75. $sql = ("SELECT * FROM $table_name WHERE budynek ='$rap_budynek' and wezel ='$rap_wezel'") or die("Blad w zapytaniu!");
  76. $result = @mysql_query($sql) or die("brak rezultatów zapytania w bazie danych.");
  77. while ($wiersz = mysql_fetch_array($result)) {
  78. $wiersz_nag=$wiersz['wiersze_naglowka'];
  79. $ilosc_mieszkan=$wiersz['ilosc_mieszkan'];
  80. }
  81. $koniec_pliku = $wiersze_stop + 15;
  82. echo '<table cellpadding="8" border="1"><tr><td >Pełna nazwa pliku raportu</td><td>'."$plikuzytkownika_name".'</td></tr>
  83. <tr><td >Ścieżka do pliku tymczasowego</td><td>'."$plikuzytkownika".'</td></tr>
  84. <tr><td>Wielkość pliku raportu</td><td>'."$plikuzytkownika_size".'</td></tr>
  85. <tr><td>Raportowany budynek</td><td>'."$rap_bud".'</td></tr>
  86. <tr><td>Raportowany węzeł </td><td>'."$rap_wezel".'</td></tr>
  87. <tr><td>Miesiąc  rok </td><td>'."$miesiac  $rok".' rok</td></tr>
  88. <tr><td>Ilość rekordów (mieszkań) </td><td>'."$ilosc_mieszkan".'</td></tr></table>';
  89. ?>
  90. <p style="font-size: 14px; font-style: normal; text-align: left;"> Jeżeli plik został poprawnie załadowany na serwer:<br>
  91. <ul><li>Sprawdź czy zgadza się nazwa pliku raportu nad którym obecnie pracujesz,</li>
  92. <li>Sprawdź czy został wykryty prawidłowy wiersz od którego zaczynają się dane li
    czbowe, </li>
  93. <li>Sprawdź czy właściwie został wybrany budynek i ewentualnie węzeł którego doty
    czy raport</li>
  94. <li>Poniżej wyświetlona została zawartość przesłanego raportu, można sprawdzić je
    go treść.</li>
  95. </ul>
  96. </p>
  97. <!-- 
  98. <form action="index.php?go=aktualbud&sort=<? echo "$budynek_id"; ?>" method="post" ENCTYPE="multipart/form-data" >
  99. <input type="text" name="plik" value="<? echo "$plikuzytkownika_name" ?>" size="15">
  100. <input type="submit" value="Wyślij">
  101. </form>
  102.  --> 
  103. <hr>
  104. <?
  105.  $tekst = file($lokalizacja);
  106.  array_splice($tekst, 0, $wiersz_nag); //usuwam wiersze na początku
  107.  array_splice($tekst, $ilosc_mieszkan, $koniec_pliku); //usuwam wiersze na koncu
  108.  $tekst = preg_replace( '/ +/', ' ', $tekst );
  109.  foreach ($tekst as $linia)
  110.  {
  111. echo "$linia <br />";
  112. } 
  113.  $wp = fopen("$lokalizacja", 'w');
  114. fwrite( $wp, implode( '', $tekst ) );  
  115.  
  116. echo mysql_errno() . ": " . mysql_error(). "n";
  117.  
  118. mysql_query('SELECT * FROM stany');
  119. echo mysql_errno() . ": " . mysql_error() . "n";
  120.  
  121.  
  122.  
  123. $zapytanie = "LOAD DATA INFILE '". $_SERVER['DOCUMENT_ROOT'] . "/raporty/.$plikuzytkownika_name' INTO TABLE stany FIELDS TERMINATED BY ' ' LINES TERMINATED BY 'rn' (nr, woda_zimna, woda_ciepla, woda_oligoc, co )";
  124.  
  125. mysql_query($zapytanie);
  126.  if ($zapytanie) echo "Tabela została wypełniona danymi z pliku<br>";
  127.  ?>

Tylko proszę się nie śmiać, że coś robię nie tak nie jestem fachowcem staram się rozwiązać problem, nie jest to żadna praca zlecona, bardziej nadgorliwość oraz próba zmierzenia się z problemem i nauki programowania w php i MySQL-u.
Jak zobaczycie, że coś robię nie tak to proszę o poradę.
Z góry dziękuję.
Pomyślałem jescse że napiszę jak wygląda tabela stany:
  1. -- Struktura tabeli dla `stany`
  2. --
  3.  
  4. CREATE TABLE `stany` (
  5. `stany_id` int(6) NOT NULL AUTO_INCREMENT,
  6. `budynek` varchar(15) NOT NULL DEFAULT 'Bluszczanska 74',
  7. `wezel` char(3) NOT NULL DEFAULT 'o',
  8. `nr` tinyint(3) NOT NULL DEFAULT '0',
  9. `woda_zimna` float(5,3) NOT NULL DEFAULT '0.000',
  10. `woda_ciepla` float(5,3) NOT NULL DEFAULT '0.000',
  11. `woda_oligoc` float(5,3) NOT NULL DEFAULT '0.000',
  12. `co` float(5,3) NOT NULL DEFAULT '0.000',
  13. `data` varchar(10) NOT NULL DEFAULT '2006',
  14. PRIMARY KEY (`stany_id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=1 ;


Ten post edytował Chrom 15.01.2006, 15:15:18
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:40