Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][MySQL][PHP]Jak pobrać dane do RSS w odpowiednim formacie?
rel
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


Chciałem sobie zrobić automat do generowania pliku dla multiwyszukiwarki, tylko nie za bardzo potrafię to zrobić. Otóż plik powinien miec postać:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <trovit>
  3. <ad>
  4. <id><![CDATA[.....]]></id>
  5. <url><![CDATA[http://www.twojadomena.pl/ad/.....]]></url>
  6. <title><![CDATA[....tresc tytulu ogloszenia....]]></title>
  7. <type><![CDATA[....typ ogloszenia...]]></type>
  8. <content><![CDATA[....opis ogloszenia....]]></content>
  9. <date><![CDATA[....data dodania i godzina ....]]></date>
  10. </ad>
  11.  
  12. <ad>
  13. <id><![CDATA[.....]]></id>
  14. <url><![CDATA[http://www.twojadomena.pl/ad/.....]]></url>
  15. <title><![CDATA[....tresc tytulu ogloszenia....]]></title>
  16. <type><![CDATA[....typ ogloszenia...]]></type>
  17. <content><![CDATA[....opis ogloszenia....]]></content>
  18. <date><![CDATA[....data dodania i godzina ....]]></date>
  19. </ad>
  20.  
  21. <ad>
  22. <id><![CDATA[.....]]></id>
  23. <url><![CDATA[http://www.twojadomena.pl/ad/.....]]></url>
  24. <title><![CDATA[....tresc tytulu ogloszenia....]]></title>
  25. <type><![CDATA[....typ ogloszenia...]]></type>
  26. <content><![CDATA[....opis ogloszenia....]]></content>
  27. <date><![CDATA[....data dodania i godzina ....]]></date>
  28. </ad>


W jaki sposób zabrać sie do pobierania danych z bazy, aby plik miał odpowiednio zadaną postać? Przyznam, że zupełnie nie mam na to pomysłu. Każde ogłoszenie musiałoby się zapisac włąsnie w tagach <ad>...</ad>

Ten post edytował rel 9.01.2014, 14:09:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rel
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 9.01.2014

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


wow, zupełnie nie rozumiem Twojej podpowiedzi...tak n amarginesie, to próbuję swoich sił, jutro zapodam co wymyśliłem.

Zrobiłem to tak:

1. Utworzyłem moj_rss.xml o zawartości:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <trovit>
  3. <ad>
  4. <id><![CDATA[]]></id>
  5. <url><![CDATA[]]></url>
  6. <title><![CDATA[]]></title>
  7. <type><![CDATA[]]></type>
  8. <content><![CDATA[]]></content>
  9. <date><![CDATA[]]></date>
  10. </ad>
  11. </trovit>


2. Teraz moj_rss.php, zawartość to:

  1. <?php
  2. function lacz_bd()
  3. {
  4. $db = new mysqli('localhost', 'admin', 'pass', 'baza');
  5. if (! $db)
  6. return false;
  7. $db->autocommit(TRUE);
  8. return $db;
  9. }
  10. // tutaj podajemy dane co do xml
  11. $kanalRSS= '<?xml version="1.0" encoding="utf-8"?>';
  12. $kanalRSS .= '<trovit>';
  13. $kanalRSS .= '<ad>';
  14. // połaczenie z bazą
  15. $db = lacz_bd();
  16. //zapytanie określające jakie dane ma mieć kanał RSS
  17. // pobierzmy teraz ogłoszneia z tabeli annoucements, niech będzie ostatnie 5
  18. $zapytanie = "SELECT * FROM annoucements ORDER BY data DESC LIMIT 5";
  19. $wynik = $db->query($zapytanie);
  20. $ile_znalezionych = $wynik->num_rows;
  21. for ($i=0; $i <$ile_znalezionych; $i++)
  22. {
  23. $wiersz = $wynik->fetch_assoc();
  24. $wpis_id = $wiersz['annoucement_id'];
  25. //Generujemy typową konstrukcję XML z danymi z bazy danych
  26. $kanalRSS .= '<item>';
  27.  
  28. $kanalRSS .= '<id><![CDATA['.$wiersz['annoucement_id'].']]></id>';
  29. $kanalRSS .= '<url><![CDATA[http://domena.pl/ogloszenia/'.$wiersz['annoucement_id'].'/'.$wiersz['annoucement_title'].']]></url>';
  30. $kanalRSS .= '<title><![CDATA['.$wiersz['annoucement_title'].']]></title>';
  31. $kanalRSS .= '<type><![CDATA['.$wiersz['annoucement_type'].']]></type>';
  32. $kanalRSS .= '<content><![CDATA['.$wiersz['annoucement_content'].']]></content>';
  33. $kanalRSS .= '<date><![CDATA['.$wiersz['annoucement_date_added'].']]></date>';
  34. $kanalRSS .= '</item>';
  35. }
  36. $kanalRSS .= ' </ad>';
  37. $kanalRSS .= '</trovit>';
  38. //Zapisujemy wygenerowany kod XML do pliku moj_rss.xml
  39. $fp = fopen('moj_rss.xml','w');
  40. fwrite($fp,$kanalRSS);
  41. fclose($fp);
  42. ?>


No i niestety kupa, tzn nie generuje mi pliku moj_rss.xml z zawartościami, które chciałem pobrać. Wywala mi tylko same znaczniki, co powaliłem, podpowie ktoś?

Chyba się poddam, bo próbowałem wszystkiego i pobrać dane mogę bez problemu, nie potrafię jedynie zapisać tego do pliku o rozszerzeniu .xml, który będzi eposiadał określoną strukturę znaczników dla multiwyszukiwarki.

Pobieram za pomocą:

  1. <?php
  2.  
  3. $sql_host = 'localhost';
  4. $sql_user = 'userek';
  5. $sql_password = 'poprawne_haslo';
  6. $sql_baza = 'poprawna_nazwa_bazy';
  7.  
  8. if (mysql_connect($sql_host, $sql_user, $sql_password) and mysql_select_db($sql_baza)) {
  9. $zapytanie = mysql_query("SELECT * FROM nazwa_tabeli");
  10. if ($zapytanie) {
  11.  
  12. while ($wynik = mysql_fetch_array($zapytanie)) {
  13. $wynik["annoucement_title"];
  14. $wynik["annoucement_city"];
  15. }}}
  16.  
  17. ?>


Dziękitemu bez problemu wyciąga z tabeli tytuł i miasto. Ale nie mogę już zapiać tego do określonego pliku.

Aj i muszę znowu poprosić Was o pomoc.

Plik ma nadane chmody 777 i nic.
Co jest nie tak? może ktoś zerknać na mój kod?

daję jak wyżej
moj_rss.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <trovit>
  3. <ad>
  4. <id><![CDATA[]]></id>
  5. <url><![CDATA[]]></url>
  6. <title><![CDATA[]]></title>
  7. <type><![CDATA[]]></type>
  8. <content><![CDATA[]]></content>
  9. <date><![CDATA[]]></date>
  10. </ad>
  11. </trovit>


moj_rss.php
  1. <?php
  2. function lacz_bd()
  3. {
  4. $db = new mysqli('localhost', '_admin', 'pass', 'baza');
  5. if (! $db)
  6. return false;
  7. $db->autocommit(TRUE);
  8. return $db;
  9. }
  10. // tutaj podajemy dane co do xml
  11. $kanalRSS= '<?xml version="1.0" encoding="utf-8"?>';
  12. $kanalRSS .= '<trovit>';
  13. $kanalRSS .= '<ad>';
  14. // połaczenie z bazą
  15. $db = lacz_bd();
  16. //zapytanie określające jakie dane ma mieć kanał RSS
  17. // pobierzmy teraz ogłoszneia z tabeli annoucements, niech będzie ostatnie 10
  18. $zapytanie = "SELECT * FROM announcements ORDER BY data DESC LIMIT 10";
  19. $wynik = $db->query($zapytanie);
  20. $ile_znalezionych = $wynik->num_rows;
  21. for ($i=0; $i <$ile_znalezionych; $i++)
  22. {
  23. $wiersz = $wynik->fetch_assoc();
  24. $wpis_id = $wiersz['annoucement_id'];
  25. //Generujemy typową konstrukcję XML z danymi z bazy danych
  26. $kanalRSS .= '<item>';
  27.  
  28. $kanalRSS .= '<id><![CDATA['.$wiersz['annoucement_id'].']]></id>';
  29. $kanalRSS .= '<url><![CDATA[http://oglaszajtu.pl/ogloszenia/'.$wiersz['annoucement_id'].'/'.$wiersz['annoucement_title'].']]></url>';
  30. $kanalRSS .= '<title><![CDATA['.$wiersz['annoucement_title'].']]></title>';
  31. $kanalRSS .= '<type><![CDATA['.$wiersz['annoucement_type'].']]></type>';
  32. $kanalRSS .= '<content><![CDATA['.$wiersz['annoucement_content'].']]></content>';
  33. $kanalRSS .= '<date><![CDATA['.$wiersz['annoucement_date_added'].']]></date>';
  34. $kanalRSS .= '</item>';
  35. }
  36. $kanalRSS .= ' </ad>';
  37. $kanalRSS .= '</trovit>';
  38. //Zapisujemy wygenerowany kod XML do pliku moj_rss.xml
  39. $fp = fopen('moj_rss.xml','w');
  40. fwrite($fp,$kanalRSS);
  41. fclose($fp);
  42. ?>


Wywołuję oglaszajtu.pl/moj_rss.xml i pusto, niczego nie importuje.

Ten post edytował rel 10.01.2014, 09:19:22
Go to the top of the page
+Quote Post

Posty w temacie
- rel   [XML][MySQL][PHP]Jak pobrać dane do RSS w odpowiednim formacie?   9.01.2014, 14:00:31
- - timon27   Nie za bardzo rozumiem z czym masz problem. Przeci...   9.01.2014, 16:04:08
- - rel   RE: [XML][MySQL][PHP]Jak pobrać dane do RSS w odpowiednim formacie?   10.02.2014, 12:13:38
- - nospor   Skoro wpisuja ci sie puste dane, to raczej dosc lo...   10.02.2014, 12:20:28
- - rel   Zwraca mi to: KodFatal error: Call to a membe...   10.02.2014, 12:26:22
- - nospor   var_dump($wynik);   10.02.2014, 12:34:41
- - rel   nadal to samo, tzn ten sam error   10.02.2014, 12:42:32
- - nospor   Dobra.... inaczej.... pokaz plik test.php i zaznac...   10.02.2014, 12:44:15
- - rel   [PHP] pobierz, plaintext <?php $wiersz = $wy...   10.02.2014, 12:48:07
- - nospor   Ale o czym ty mowisz? Ja sie caly czas odnosze do...   10.02.2014, 12:54:20
- - rel   nospor, zakręciłem się, to nie tak. Zwraca mi błą...   10.02.2014, 12:58:13
- - nospor   POkaz kod po zmianach, bo juz widze ze prostego va...   10.02.2014, 13:00:44
- - rel   Masakra, ";" uciekł...:-) teraz poprawi...   10.02.2014, 13:03:31
- - nospor   A w jaki sposob ty w ogole odpalasz moj_rss.php ?   10.02.2014, 13:06:14
- - rel   Wywołuję go www.oglaszajtu.pl/moj_rss.php   10.02.2014, 13:07:32
- - nospor   No to nie mozliwe ze var_dump ci nic nie zwraca......   10.02.2014, 13:09:39
- - rel   [HTML] pobierz, plaintext <html><head...   10.02.2014, 13:11:07
- - nospor   Daj przed petla FOR kod [PHP] pobierz, plaintext ...   10.02.2014, 13:16:55
- - rel   Zwraca mi to: KodNULL Jesli tego nie widzisz, zna...   10.02.2014, 13:22:00
- - nospor   Czyli petla ani razu ci sie nie wykonuje, a co za ...   10.02.2014, 13:29:05
|- - rel   Cytat(nospor @ 10.02.2014, 13:29:05 )...   10.02.2014, 13:32:35
- - nospor   Pokaz dokladnie jaki zostal utworzony plik .xml......   10.02.2014, 13:34:54
- - rel   [xml<?xml version="1.0" encoding=...   10.02.2014, 13:38:59
- - nospor   A z kodu co pokazales na samym poczatku wynikalo, ...   10.02.2014, 13:40:28
- - rel   No tak, tylko jak to sprawdzić, bo dane do bazy po...   10.02.2014, 13:42:23
- - nospor   CytatNo tak, tylko jak to sprawdzić, bo dane do ba...   10.02.2014, 13:47:26
- - Crozin   Tyle postów, a Ty @norspor jeszcze nie przypomniał...   10.02.2014, 13:56:48
- - nospor   @Crozin, ale to nie jest glownym problemem. Glowny...   10.02.2014, 13:58:16
- - rel   [PHP] pobierz, plaintext <?php$mysqli = new mys...   10.02.2014, 14:12:22
- - nospor   Nom tylko ze musisz to prawidlowo wstawic w swoj k...   10.02.2014, 14:14:05
- - rel   Sprawdzałem sobie tym kodem: [PHP] pobierz, plain...   11.02.2014, 08:38:41
- - nospor   Tresc znacznikow XML nie moze zawierac roznych zas...   11.02.2014, 08:42:09
|- - rel   Cytat(nospor @ 11.02.2014, 08:42:09 )...   11.02.2014, 09:15:04
- - nospor   Do odbierania danych z zapytania powinienes uzywac...   11.02.2014, 09:16:11
|- - rel   Cytat(nospor @ 11.02.2014, 09:16:11 )...   11.02.2014, 09:35:29
- - nospor   Mozna, ale WHILE jest ladniejsze i prostrze, nie t...   11.02.2014, 09:38:39
- - rel   I jeszcze jedna sprawa. W moj_rss.xml wyświetla m...   11.02.2014, 09:41:31
- - nospor   strip_tags()   11.02.2014, 09:56:36
- - rel   Pobieram dane do url z bazy, ale jest pewien kłopo...   11.02.2014, 10:03:15
- - nospor   CytatTwego już strip_tags() nie załatwię, co?O jak...   11.02.2014, 10:06:27
- - rel   Dałem tak: [PHP] pobierz, plaintext <?php// da...   11.02.2014, 10:19:20
- - nospor   strip_tags masz robic tylko i wylacznie na danej z...   11.02.2014, 10:20:32
- - rel   będzie to $zapytanie - dobrze rozumiem ten ca...   11.02.2014, 10:42:51
- - nospor   $zapytanie zawiera TRESC ZAPYTANIA. Czy widzi...   11.02.2014, 11:03:55
|- - rel   Cytat(nospor @ 11.02.2014, 11:03:55 )...   11.02.2014, 11:27:00
- - nospor   $wiersz['annoucement_content'] to jes...   11.02.2014, 11:29:44
- - rel   Cytat(nospor @ 11.02.2014, 11:29:44 )...   11.02.2014, 11:36:52


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: 15.10.2025 - 15:23