Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wczytanie tekstu....
Forum PHP.pl > Forum > Przedszkole
Korson
Witam... Chciałem utworzyć mini baze danych która przykładowo wyglądała by tak:
Kod
...
<nr>3<imie>*****<nazwisko>******<stanowisko>*******<koniec>
<nr>2<imie>*****<nazwisko>******<stanowisko>*******<koniec>
<nr>1<imie>*****<nazwisko>******<stanowisko>*******<koniec>

Wiem jak zapisać dane w taki sposób ale nie wiem jak wczytać numer, później imię, nazwisko i stanowisko :-(

Proszę o pomoc :-)
kwiateusz
ale chcialbys to w sql umiescic w pliku czy xml ? bo baze danych mozna ze wszytskiego zrobic ...
Korson
w pliku tekstowym
kwiateusz
jak na pliku tekstowym to zapisalbym to inaczej np. kazda sekcje oddzielajac , lub | a potem tylko explode() i latwo wydobyc to co sie chce ....
tiraeth
Użyj pliku XML, potem już będziesz mógł te dane sobie wybierać w różny sposób, np. poprzez SimpleXML w php albo XMLDocument w JavaScript smile.gif

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <person nr=1>
  3.      <imie>********</imie>
  4.      <nazwisko>*********</nazwisko>
  5.      <stanowisko>********</stanowisko>
  6. </person>
  7. <person nr=2>
  8.      <imie>********</imie>
  9.      <nazwisko>*********</nazwisko>
  10.      <stanowisko>********</stanowisko>
  11. </person>
  12. <person nr=3>
  13.      <imie>********</imie>
  14.      <nazwisko>*********</nazwisko>
  15.      <stanowisko>********</stanowisko>
  16. </person>
Korson
tylko za grosz nie znam xml'a :-( i jeżeli zapisze dane w xml'u to będe mógł dodawać nowe rekordy za pomocą formularza :?:
Speedy
Co to za różnica, czy jest znak | czy ****** ? Może jedynie w przejrzystości...

Możesz zrobić tak:

  1. <?php
  2.  
  3. $what = 'plik.txt';
  4. $separator = '*******';
  5.  
  6.  
  7. $file = file($what);
  8. $lines = count($file);
  9.  
  10. for ($i = 0; $i < $lines; $i++) 
  11. {
  12. $line = explode($separator, trim($file[$i]));
  13. echo 'numer: '.$line[0].', imię: '.$line[1].', nazwisko: '.$line[2].', stanowisko: '.$line[3].'<br/>';
  14. }
  15. ?>


Zauważyłem, że masz tam różne separatory, więc podany przeze mnie przykład nie do końca zadziała...
Zrób sobie wszędzie identyczne separatory i zrób separator pomiędzy numerem, a imieniem, to wtedy zadziała.

ps. Na upartego dałoby się to odczytać w obecnej postaci, tylko po co się tak masakrować tongue.gif ?
Korson
nie chce tego rozbijać na tablice bo przy większej ilości wpisów ciężko co kolwiek zrobić... pomysł z xml'em mi się podoba tylko czy będe mógł dodawać nowe wpisy i jak to wyświetlić (zabrałem się za czytanie kursu :-D) ale jeżeli mi objaśnicie mniej więcej będzie prościej

przy wyświetleniu chciałbym zrobić stronicowanie
Speedy
To niby jak chcesz to odczytać i normalnie wyświetlić nie rozbiwszy tego uprzednio na tablicę laugh.gif ? Jakich danych byś nie miał, czy xml, czy plik tekstowy, czy też baza danych, to po ich wydobyciu musisz z nich utworzyć tablicę, w celu ich wyświetlenia w jakimś określonym porządku.

Dane do XML-a możesz dodawać za pomocą DOM.
Korson
źle mnie zrozumiałeś tongue.gif albo ja zabardzo zagmatwałem tongue.gif

Chce na począdku wczytać cyferke jako numer osoby czyli tekst między <nr>a<imie> później chce wczytać kolejny tekst między <imię>a<nazwisko> i tak dalej...

później chce to wyświetlić na stronie i ewentualnie zrobić do tego stronicowanie... tylko nie wiem jak wczytać tekst między znacznikami
Speedy
gosh! To może daj konkretny przykład z wprowadzonymi danymi, bo rzeczywiście to zagmatwałeś tongue.gif. Wtedy może będzie można lepiej zrozumieć o co Ci chodzi winksmiley.jpg.

btw. Jeśli tych danych masz naprawdę dużo, to lepiej odpuść sobie plik tekstowy i zainteresuj się bazą danych lub też XML-em. W przypadku dużej bazy plik tekstowy będzie niewydajny i będziesz bardziej narażony na nieoczekiwaną utratę danych.
Korson
w formularzu dodaje dane do bazy;

w bazie mam coś takiego:
<nr>3<imie>imie1<nazwisko>bel<stanowisko>sprzątakczka<koniec>
<nr>2<imie>jakies inne imie<nazwisko>Kot<stanowisko>kiedrownik<koniec>
<nr>1<imie>cudowne imie<nazwisko>Mysz<stanowisko>ktoś taminny <koniec>

Numer oznacza rekord,

i chce wyświetlić dane na stronie w tabelce
LP: nr
Imię: Imię
...
drugi rekord:
LP: nr
Imię
...
itd...

Tylko cały czas nie wiem jak wczytać tekst pomiędzy znacznikami, a wiem że się tak da... bo widziałem działającą księge gości na takiej zasadzie
kwiateusz
jak dla mnie prosciel by to wygladalo
  1. <?php
  2. $lol='3|imie1|bel|sprzątakczka';
  3. $dane=explode('|', $lol);
  4. ?>


ladnie szybko bo to co ty podajesz tez da sie porozalczac tylko to wymaga wiecej kodu do napisania ...
Wykrywacz
A czy faktycznie nie prościej było by to do bazy wsadzić?

Jest to wydaje mi się prostsze do wyciągania, o wielkość tego tym bardziej nie musisz si ę obwiać...
Bajecznie prosto zapisać takie dane z formularza, i potem przez formularz wyciągać co ci potrzeba.
Korson
prościej by było z bazą... w sumie żaden problem.... tylko że nie każdy serwer ma baze danych :-(

co do explode to jak wyświetle wszystkie wpisy?? i co będzie jeżeli zabraknie stanowiska :?: wtedy całość się sypnie... a przy moim skomplikowanym czymś moge wyświetlić osobę naprzykład bez stanowiska i reszta rekordów będzie działać poprawnie
Wykrywacz
A to po co chcesz robić masę baz? Nie lepiej zrobić jedną, no ciężko stwierdzić apropo właściwego rozwiązania jeżeli nie wiadomo do czego ma to służyć. Jako mini baza, która w kolejnym poście staje się dużą bazą... no to chyba dobry byłby mysql.
Jeżeli to ma być replikowane i występować niezależnie od siebie w wielu miejscach to chyba jednak xml.

Ale można to też zrobić na jednym mysql serv tongue.gif i tam trzymać dane.
ew. msmsql ....

Tylko po co?

Bo do lokalnego wpisywanie sobie w baze i posiadanie bazy to może warto access'a?
A w zasadzie to chyba wystarczy excel, bądz jego openofficowy odpowiednik który zdaje się też już ma odpowiednik Visuala... to lokalnie wyjdzie prościej...
mike
Cytat(Korson @ 2006-05-05 13:27:53)
prościej by było z bazą... w sumie żaden problem.... tylko że nie każdy serwer ma baze danych :-(

W takiej sytuacji idealne jest SQLite
O ile dysponujesz php5
tiraeth
Cytat(Korson @ 2006-05-05 11:17:56)
tylko za grosz nie znam xml'a :-( i jeżeli zapisze dane w xml'u to będe mógł dodawać nowe rekordy za pomocą formularza :?:

Tak będziesz mógł, wystarczy użyć jakiejś klasy do budowania struktury pliku xml i to wystarczy smile.gif
Korson
niestety nie mam php5 :-( a baza będzie góra do 50 rekordów jak narazie...

Więc wiem jak zapisać dane w xml'u... teraz nie mam pojęcia jak je wczytać ;-(
Wykrywacz
:ROTFL:

To wejdź na stronę php'a i sobie ściągnij.

W zasadzie jest to bardziej niż obraźliwe jak ktoś jest większym leniem odemnie.

Cytat
Więc wiem jak zapisać dane w xml'u... teraz nie mam pojęcia jak je wczytać ;-(
jest taka magiczna sztuczka, nazywa się google
tiraeth
Użyj klasy mp/SofeeXmlParser.rar' target='_blank, jest dostępny na PHPClasses.org ale jak nie masz tam konta to skorzystaj z tego odnośnika, umieściłem plik na swoim serwerze
Guest
dzieki za fatyge ale i tak nic z tego xml'a nie czaje :-(
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.