Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> system newsow oparty o pliki xml
rvk
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


Witam

zamierzam w ramach treningu (oop) napisać system newsów oparty na xml (pisze w tym dziale bo nie chodzi mi o oop akurat).
Jak dorobić komentarze do newsa zapisanego w plik xml/txt, zawsze pracowałem na mysql, i teraz są schody

no i czy zapisywanie newsów w formie

  1. <newsy>
  2. <news>
  3. <title>news nr 1</title>
  4. <body>tresc </body>
  5. </news>
  6. <news>
  7. <title>news nr 2</title>
  8. <body>tresc </body>
  9. </news>
  10. <news>
  11. <title>news nr 3</title>
  12. <body>tresc </body>
  13. </news>
  14. itd.
  15. </newsy>


bedzie dobrym rozwiazaniem ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





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

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


Ja bym jeszcze dodał id newsów, czas i datę - to raz.

Komentarze:

  1.  
  2. <komentarze>
  3. <komentarz newsid="1" czas="13123123" autor="aaa">Tresc</komentarz>
  4. </komentarze>
  5.  


I coś takiego wystarczy.

Gdy ma być tego więcej to rozbij na pliki.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
rvk
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


bardziej chodzi mi o to jak to połączyć, jak to obrać w php ?
kiedy dzielic pliki ?


Ten post edytował rvk 26.07.2010, 18:41:07
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





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

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


Cytat(rvk @ 26.07.2010, 18:40:19 ) *
bardziej chodzi mi o to jak to połączyć, jak to obrać w php ?

Parsujesz za pomocą: simplexml wrzucasz newsy do tablicy i tak samo z komentarzami.
Cytat(rvk @ 26.07.2010, 18:40:19 ) *
kiedy dzielic pliki ?

Gdy np. komentarzy będzie bardzo dużo, wtedy polecałbym opcję, że jeden plik z komentarzem przypisany jest do jednego newsa.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
rvk
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


do tablicy wrzucac po prostu ?

  1. foreach($xml as $value)
  2. {
  3. $array['id'] = $xml->news->id;
  4. $array['title'] = $xml->news->title
  5. itd.
  6. }


jeden plik z komentarzami do kazdego newsa, a czy newsy też dzielic, chyba nie?

Ten post edytował rvk 26.07.2010, 19:00:01
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





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

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


Cytat(rvk @ 26.07.2010, 18:59:18 ) *
do tablicy wrzucac po prostu ?

  1. foreach($xml as $value)
  2. {
  3. $array['id'] = $xml->news->id;
  4. $array['title'] = $xml->news->title
  5. itd.
  6. }


jeden plik z komentarzami do kazdego newsa, a czy newsy też dzielic, chyba nie?

Raczej nie będą miały takich długich treści i nie będzie ich tak wiele jak komentarzy.

Co do kodu polecam rzutowanie:
ogólnie zrób tak:
  1. foreach ($xml as $value) {
  2. $array[(int)$value['id']] = (string) $value->tresc;
  3. }


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
muk4
post
Post #7





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Zauważ, że jeden news może wywołać flame war więc komentarzy będzie dużo a newsów nie smile.gif

@DOWN
Lepiej dać id kategorii do newsa.

Ten post edytował muk4 26.07.2010, 19:12:42
Go to the top of the page
+Quote Post
rvk
post
Post #8





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


co do tych newsów to chodziło mi bardziej czy dzielić je na ktegorie po plikach.
Go to the top of the page
+Quote Post
everth
post
Post #9





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Jeśli chcesz to obrać w PHP to zapoznaj się z szablonami XSLT. Znakomicie ułatwiają przekształcanie jednego xml w drugi (choćby HTML). W PHP masz odpowiednie klasy do tego (SimpleXML, DOMDocument, XSLTProcessor).


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Crozin
post
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


XML to format umożliwiający przechowywanie hierarchicznych danych więc w ogóle nie rozumiem co to za jakieś komentarz newsid="123".

  1. <archive>
  2. <news>
  3. <title>Some title</title>
  4. <content>Some content</content>
  5.  
  6. <comments>
  7. <comment>
  8. <content>Blah blah blah</content>
  9. </comment>
  10. <comment>
  11. <content>Blah blah blah #2</content>
  12. </comment>
  13. </comments>
  14. </news>
  15. </archive>
Go to the top of the page
+Quote Post
rvk
post
Post #11





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


jak lepiej zrobic
  1. <newsy>
  2. <news id="1">
  3. itd.
  4. </news>
  5. </newsy>


czy dodac pole <id>1</id> ?

Go to the top of the page
+Quote Post
everth
post
Post #12





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Jak wolisz. Co jest atrybutem/węzłem nie jest sformalizowane. Ładniej wygląda jako węzeł (pole).


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Crozin
post
Post #13





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


id/data dodania itp. - to są atrybuty dla aktualności. Co innego treść.
Go to the top of the page
+Quote Post
rvk
post
Post #14





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


a czy nie bedzie później problemu ze zrobieniem RSS
np. jak mamy newsy
  1. <archive>
  2. <news>
  3. <title>Some title</title>
  4. <content>Some content</content>
  5.  
  6. <comments>
  7. <comment>
  8. <content>Blah blah blah</content>
  9. </comment>
  10. <comment>
  11. <content>Blah blah blah #2</content>
  12. </comment>
  13. </comments>
  14. </news>
  15. </archive>


a rss wyglada tak
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <rss version="2.0">
  3.  
  4. <channel>
  5. <title>W3Schools Home Page</title>
  6. <link>http://www.w3schools.com</link>
  7. <description>Free web building tutorials</description>
  8. <item>
  9. <title>RSS Tutorial</title>
  10. <link>http://www.w3schools.com/rss</link>
  11. <description>New RSS tutorial on W3Schools</description>
  12. </item>
  13. <item>
  14. <title>XML Tutorial</title>
  15. <link>http://www.w3schools.com/xml</link>
  16. <description>New XML tutorial on W3Schools</description>
  17. </item>
  18. </channel>
  19.  
  20. </rss>
  21.  


to jest jakis sposob aby to polazyc ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #15





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

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


Cytat(Crozin @ 26.07.2010, 19:14:51 ) *
XML to format umożliwiający przechowywanie hierarchicznych danych więc w ogóle nie rozumiem co to za jakieś komentarz newsid="123".

  1. <archive>
  2. <news>
  3. <title>Some title</title>
  4. <content>Some content</content>
  5.  
  6. <comments>
  7. <comment>
  8. <content>Blah blah blah</content>
  9. </comment>
  10. <comment>
  11. <content>Blah blah blah #2</content>
  12. </comment>
  13. </comments>
  14. </news>
  15. </archive>


Jeżeli będziesz miał po 100 komentarzy do newsa to powodzenia. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
everth
post
Post #16





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Pierwsza znaleziona klasa. Na tamtej stronce masz ich więcej.

Cytat(fifi209 @ 26.07.2010, 20:36:56 ) *
Jeżeli będziesz miał po 100 komentarzy do newsa to powodzenia. ;]

Ale co to za problem nawigować po XMLu, jak się ma do dyspozycji Xpath i XQuery?

Ten post edytował everth 26.07.2010, 19:39:54


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Crozin
post
Post #17





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Jeżeli będziesz miał po 100 komentarzy do newsa to powodzenia. ;]
To, że XML jest tutaj złym rozwiązaniem to już inna bajka. Z narzędzi korzysta się tak jak się powinno i dobiera się właściwie do różnych zastosowań.
Cytat
Ale co to za problem nawigować po XMLu, jak się ma do dyspozycji Xpath i XQuery?
Gdy plik zacząłby nabierać dziesiątek megabajtów danych pojawiłby się problemy z ilością pamięci jak i czasem parsowania samego pliku. Banalne do ominięcia przechowując sparsowany XML bezpośrednio w pamięci.

Ten post edytował Crozin 26.07.2010, 20:03:49
Go to the top of the page
+Quote Post
everth
post
Post #18





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Nie myślałem że on chce użyć tych danych jako coś w rodzaju bazy danych. Ech, trochę mnie gubi moje przyzwyczajenie do pracy według schematu DB -> XML -> XSLT -> HTML. Zawsze spokojnie może zmapować to drzewo xml na tabelę w Sql


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
rvk
post
Post #19





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


no cóż chciałem poćwiczyć oop i napisac klase do zarządzania plikami (cw. operacje na plikach i przy okazji xml) a jako płaską baze miec cos jakby xml'a
ale zrobie to jednak chyba z mysql, bo zacześli taką pogawędke...

ale nie bardzo wiem jak ma wygladac klasa mysql...

Ten post edytował rvk 26.07.2010, 20:58:35
Go to the top of the page
+Quote Post
Crozin
post
Post #20





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


To Ci się trochę pomyliło: XML to hierarchiczna baza danych, MySQL to płaska baza danych.

Cytat
ale nie bardzo wiem jak ma wygladac klasa mysql...
PDO.
Go to the top of the page
+Quote Post
everth
post
Post #21





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Może mieć namiastkę hierarchiczności w tabeli jak ją odpowiednio skonstruuje. Słowo klucz: SQL Tree.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
rvk
post
Post #22





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


Cytat(Crozin @ 26.07.2010, 22:06:26 ) *
To Ci się trochę pomyliło: XML to hierarchiczna baza danych, MySQL to płaska baza danych.

PDO.


ale nie chcce korzystac z gotowej, chce napisac własna dla nauki i nie wiem jak ma wygladac..
Go to the top of the page
+Quote Post
wookieb
post
Post #23





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ok pisz, Ale znacznie stracisz na wydajności w porównaniu do bardzo dobrej natywnej biblioteki.


--------------------
Go to the top of the page
+Quote Post
rvk
post
Post #24





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


ale mi chodzi o nauke oop w tym wypadku.. odradzasz rozumiem ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #25





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

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


Cytat(rvk @ 27.07.2010, 10:11:26 ) *
ale mi chodzi o nauke oop w tym wypadku.. odradzasz rozumiem ?


Ucz się pisząc aplikację opartą o MVC. smile.gif

Ten post edytował fifi209 27.07.2010, 10:14:34


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
phpion
post
Post #26





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(fifi209 @ 27.07.2010, 11:14:19 ) *
Ucz się pisząc aplikację opartą o MVC. smile.gif

Bardzo mądra porada. Może od razu rzuć kolegę na Zend Framework? Żeby poznawać wzorce projektowe (np. MVC) należy mieć podstawy (solidne?) "czystego" OOP więc klepanie jakiś prostych zestawów klas (nawet durnych jeśli chodzi o późniejsze wykorzystanie) będzie jak najbardziej wskazane.
Go to the top of the page
+Quote Post
Fifi209
post
Post #27





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

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


Cytat(phpion @ 27.07.2010, 10:16:42 ) *
Bardzo mądra porada. Może od razu rzuć kolegę na Zend Framework? Żeby poznawać wzorce projektowe (np. MVC) należy mieć podstawy (solidne?) "czystego" OOP więc klepanie jakiś prostych zestawów klas (nawet durnych jeśli chodzi o późniejsze wykorzystanie) będzie jak najbardziej wskazane.


Rzucając kogoś na głęboką wodę zwykle szybciej uczy się pływać - przynajmniej na tyle, aby przetrwać. smile.gif
Ja jestem zwolennikiem własnej teorii jeżeli chodzi o naukę: pisz to co Ci się może przydać - nigdy nie pisałem świństwa do bazy, ale np. session handlera czy cache system to tak. winksmiley.jpg i nawet z tego korzystałem w innych projektach.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
phpion
post
Post #28





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(fifi209 @ 27.07.2010, 11:22:48 ) *
Rzucając kogoś na głęboką wodę zwykle szybciej uczy się pływać - przynajmniej na tyle, aby przetrwać. smile.gif

Fajnie, tylko że potem mamy wysyp tematów, w których ludzie nie umieją/nie rozumieją np. dziedziczenia.
Go to the top of the page
+Quote Post
Fifi209
post
Post #29





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

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


Cytat(phpion @ 27.07.2010, 10:33:36 ) *
Fajnie, tylko że potem mamy wysyp tematów, w których ludzie nie umieją/nie rozumieją np. dziedziczenia.

Czytałeś resztę postu mojego? Niech pisze, ale coś co mu się przyda. smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
everth
post
Post #30





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Podejście ma dobre - tak napisz swoją bazę danych (może być oparta o XML). Jeszcze lepiej to zrobisz jak zapoznasz się przy tym z pewnymi uniwersalnymi algorytmami wyszukiwania, sortowania. To naprawdę ci pomoże w przyszłości. Z mojej strony to mogę ci polecić na początek "Algorytmy, struktury danych i techniki programowania" wyd. Helion (jak to kryptoreklama to można usunąc winksmiley.jpg)


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
rvk
post
Post #31





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 21.06.2008
Skąd: Polska

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


dziękuję wszystkim za rady i wskazówki, od jakiegoś czasu właśnie noszę się z zamiarem nauki tego OOP
dział o OOP takim czystym przerobiłem m.in w książce heliona "PHP i MySQL księga przykładów" oraz skorzystałem z wielu kursów które były dostępne w internecie.
zamierzam kupić książkę również helionu "PHP, MySQL i MVC"
ponieważ chciałbym pisać aplikację tzn zacząć już właśnie od MVC jak fifi209 polecał. Przeczytałem kilka artykułów o MVC w internecie i jednak nie są one dla mnie tak bardzo pomocne jakbym chciał, mam nadzieję, że w tej książce bardziej ogarne ten wzorzec.

jeszcze raz dziękuję za pomoc, postaram się do końca wakacji na pewno bede edukować się w kierunku oop i mvc a jakieś efekty/skrypty które stworzę na pewno tutaj umieszcze pod kątem jakieś weryfikacji czy coś.

Aktualnie, mam po prostu problem z tym jak klasa ma wyglądać np. taka właśnie jak obsługujaca mysql( bo chodzi mi o taką uniwersalna a nie tylko do jednej tabeli.. z tym się motam), ale chyba lepiej używać PDO, używać również tego przy później projektach już na MVC ?

Ten post edytował rvk 27.07.2010, 13:23:07
Go to the top of the page
+Quote Post
Fifi209
post
Post #32





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

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


Cytat(rvk @ 27.07.2010, 13:21:26 ) *
Aktualnie, mam po prostu problem z tym jak klasa ma wyglądać np. taka właśnie jak obsługujaca mysql( bo chodzi mi o taką uniwersalna a nie tylko do jednej tabeli.. z tym się motam), ale chyba lepiej używać PDO, używać również tego przy później projektach już na MVC ?

Dlatego pisałem, że nie ma sensu wynajdywać koło na nowo. smile.gif Użyj PDO w swoim projekcie, da Ci to możliwość np. łatwej zmiany bazy danych z mysql na postgre czy sqlite.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 17:12