Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Odczytanie danych z pliku i pokazanie ich w tabeli
Forum PHP.pl > Forum > Przedszkole
998
Szukałem tego na forum ale nigdzie nie mogę znaleźć dobrego rozwiązania.

Mam utworzony plik baza.txt. Jest w nim:

Huta Pokój SA|41-709 Ruda Śląska, Śląskie, Niedurnego 79|www.hutapokoj.eu
ADZ sp. z o.o.|05-220 Zielonka, Mazowieckie, Bankowa 43|www.adz.com.pl

Jak odczytać dane z tego pliku i pokazać wynik w tabeli z wyróżnieniem:

Nazwa firmy,
Kod pocztowy,
Województwo,
Ulica,
Adres WWW?
998
Cytat(kornel-php @ 30.06.2007, 14:07:34 ) *


Kombinowałem z tymi funkcjami ale nic mi nie wychodziło. Może jakiś kod tu wstawicie. Proszę o pomoc.
kornel-php
  1. <?php
  2. // nie napiszę Ci całego kodu, tylko delikatnie zobrazuję
  3.  
  4. $plik = 'plik.txt'
  5.  
  6. $otwarty = fopen($plik);
  7. $dane = fgets($otwarty);
  8.  
  9. $talica = explode('|', $dane);
  10.  
  11. //twoje dane są w elementach tablicy - $tablica[0], $tablica[1],...
  12. ?>
JaRoPHP
Cytat(998 @ 30.06.2007, 12:24:38 ) *
Kombinowałem z tymi funkcjami ale nic mi nie wychodziło. Może jakiś kod tu wstawicie. Proszę o pomoc.

Kod powinieneś wstawić Ty, my go może pomóc poprawić...

Ja bym robił to tak:
- file" title="Zobacz w manualu PHP" target="_manual - odczyt pliku do tablicy,
- foreach" title="Zobacz w manualu PHP" target="_manual - przebieg po elementach tablicy,
- list" title="Zobacz w manualu PHP" target="_manual, explode" title="Zobacz w manualu PHP" target="_manual - rozdzielenie pól według znaku "|" (i przypisanie ich do odpowiednich zmiennych),
- tworzenie wierszy tabeli.
kornel-php
Cytat(Darti @ 30.06.2007, 14:39:25 ) *


Niekoniecznie, można równie dobrze explodować 'po przecinkach', ale to już kwestia upodobań autora kodu winksmiley.jpg
998
Cytat(kornel-php @ 30.06.2007, 14:33:30 ) *
  1. <?php
  2. // nie napiszę Ci całego kodu, tylko delikatnie zobrazuję
  3.  
  4. $plik = 'plik.txt'
  5.  
  6. $otwarty = fopen($plik);
  7. $dane = fgets($otwarty);
  8.  
  9. $talica = explode('|', $dane);
  10.  
  11. //twoje dane są w elementach tablicy - $tablica[0], $tablica[1],...
  12. ?>




Zrobiłem coś takiego:

  1. <html>
  2. <body>
  3.  
  4. <table>
  5. <tr>
  6.  <td><b>Nazwa firmy</b></td>
  7.  <td><b>Kod pocztowy</b></td>
  8.  <td><b>Województwo</b></td>
  9.  <td><b>Ulica</b></td>
  10.  <td><b>Adres WWW</b></td>
  11. </tr>
  12.  
  13.  
  14. <?php
  15.  
  16. $plik = baza.txt;
  17.  
  18. $otwarty = fopen("baza.txt", "r");
  19. $dane = fgets($otwarty);
  20.  
  21. $tablica = explode('|', $dane);
  22.  
  23. ?>
  24.  
  25. <tr>
  26. <td><?php
  27.  print $tablica[0];
  28.  ?></td>
  29.  
  30.  <td><?php
  31.  print $tablica[1];
  32.  ?></td>
  33.  
  34.  <td><?php
  35.  print $tablica[2];
  36.  ?></td>
  37.  
  38.  <td><?php
  39.  print $tablica[3];
  40.  ?></td>
  41.  
  42.  <td><?php
  43.  print $tablica[4];
  44.  ?></td>
  45. </tr>
  46.  
  47. </table>
  48. </body>
  49. </html>


Wyświetla mi się tylko pierwsza linia. A jak wyświetlić kolejną linię?
UDAT
Odczytywać w pętli fgets" title="Zobacz w manualu PHP" target="_manual
ChowiX
Jak Ci ma odczytać
  1. <?php
  2. print $tablica[4];
  3. ?>

jeżeli
  1. <?php
  2.  
  3. $plik = baza.txt;
  4.  
  5. $otwarty = fopen("baza.txt", "r");
  6. $dane = fgets($otwarty);
  7.  
  8. $tablica = explode('|', $dane);
  9.  
  10. ?>
nie masz tablica[1] ?

Wg mnie ale niezbyt sie znam powinno byc
  1. <?php
  2.  
  3. $plik = baza.txt;
  4.  
  5. $otwarty = fopen("baza.txt", "r");
  6. $dane = fgets($otwarty);
  7.  
  8. $tablica = explode('|', $dane);
  9. $tablica[1] = explode('|', $dane);
  10. $tablica[2] = explode('|', $dane);
  11. $tablica[3] = explode('|', $dane);
  12.  
  13. ?>

tylko nie wiem jaka wartość ma być do $tablica[1] [2] [3]
998
Cytat(UDAT @ 30.06.2007, 15:10:26 ) *

Można wiedzieć jak to zrobić bo kompletnie nie mam pojęcia?
Darti
Cytat(kornel-php @ 30.06.2007, 12:42:24 ) *
Niekoniecznie, można równie dobrze explodować 'po przecinkach', ale to już kwestia upodobań autora kodu winksmiley.jpg


Między kodem a miastem nie ma przecinka
998
Ponawiam pytanie jak odczytać dane z drugiej linii??
kornel-php
Cytat(Darti @ 30.06.2007, 16:28:26 ) *
Między kodem a miastem nie ma przecinka


To można explodować to dodatkowo w miejscu spacji, czepiasz się winksmiley.jpg
Darti
  1. <?php
  2. function trim_value(&$value)
  3. {
  4. $value = trim($value);
  5. }
  6.  
  7. $wej = file('baza.txt');
  8.  
  9. $wyj = "<table>
  10. <tr>
  11.  <td><b>Nazwa firmy</b></td>
  12.  <td><b>Kod pocztowy</b></td>
  13.  <td><b>Województwo</b></td>
  14.  <td><b>Ulica</b></td>
  15.  <td><b>Adres WWW</b></td>
  16. </tr>n";
  17.  
  18. foreach ($wej as $i => $dane){
  19.  
  20. $dane = trim($dane); // usuwamy znaki konca wiersza
  21. list($nazwa,$inne,$www) = explode('|',$dane);
  22. $kod_pocztowy = substr($inne,0,6);
  23. $inne = explode(',',substr($inne,7));
  24. array_walk($inne,'trim_value');
  25. list($miasto,$wojewodztwo,$ulica_cala) = $inne;
  26.  
  27. $wyj .="<tr>n";
  28. $wyj .= "<td><b>$nazwa</b></td>n";
  29. $wyj .="<td><b>$kod_pocztowy</b></td>n";
  30. $wyj .="<td><b>$wojewodztwo</b></td>n";
  31. $wyj .="<td><b>$ulica_cala</b></td>n";
  32. $wyj .="<td><b><a href="http://$www">$www</a></b></td>n";
  33. $wyj .="</tr>n";
  34. }
  35. $wyj .="</table>n";
  36.  
  37. echo $wyj;
  38. ?>
998
Cytat(kornel-php @ 30.06.2007, 16:38:54 ) *
To można explodować to dodatkowo w miejscu spacji, czepiasz się winksmiley.jpg


Widze Panowie że się tu kłócicie a chyba nie na tym rzecz polega, tylko na pomocy.
JaRoPHP
Cytat(998 @ 30.06.2007, 14:37:26 ) *
Ponawiam pytanie jak odczytać dane z drugiej linii??
Zajrzyj do dokumentacji PHP: fgets" title="Zobacz w manualu PHP" target="_manual - pierwszy przykład...
Dostałeś już linka, ale mam wrażenie, że jesteś strasznie leniwy i czekasz, aż ktoś to napisze za Ciebie. Problem polega na tym, że to już zostało napisane (w dokumentacji) smile.gif.
Darti
Cytat(998 @ 30.06.2007, 14:51:52 ) *
Widze Panowie że się tu kłócicie a chyba nie na tym rzecz polega, tylko na pomocy.


No przecież dostałeś działający, dobry kod. Zastosuj go i masz problem rozwiązany
tomsi
Moglbys wytlumaczyc co znacza poszczegolne linie kodu? tak dokladnie
JaRoPHP
Cytat(tomsi @ 30.06.2007, 21:56:54 ) *
Moglbys wytlumaczyc co znacza poszczegolne linie kodu? tak dokladnie
Tak dokładnie, to opisane jest w dokumentacji (zaglądałeś tam? Bo chyba raczej nie):
- trim" title="Zobacz w manualu PHP" target="_manual,
- file" title="Zobacz w manualu PHP" target="_manual,
- foreach" title="Zobacz w manualu PHP" target="_manual,
- list" title="Zobacz w manualu PHP" target="_manual,
- explode" title="Zobacz w manualu PHP" target="_manual,
- substr" title="Zobacz w manualu PHP" target="_manual,
- array_walk" title="Zobacz w manualu PHP" target="_manual,
- echo" title="Zobacz w manualu PHP" target="_manual.

Będąc leniwym, niczego się nie nauczysz, a tym bardziej programowania.
Z dokumentacji tez trzeba umieć korzystać - im wcześniej się nauczysz, tym lepiej dla Ciebie. tomsi~powyżej jest działający kod, przeanalizuj go w oparciu o powyższe linki.
Jak nie będziesz czegoś rozumiał - pytaj, na pewno odpowiedź dostaniesz smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.