Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][xml] Stworzenie kanału RSS
Forum PHP.pl > Forum > Przedszkole
in5ane
Elo, mam problem otóż coś mi nie śmiga kanał RSS. Siedzę z tym i nie mogę nic wykombinować. Problem jest taki, że nie chce wyświetlić treści. Udało się wyświetlić tytuły a jak próbuję do tego treść, to w ogóle nic nie ma.
Robiłem to tak:
  1. <rss version="2.0">
  2. <channel>
  3. <title>deska.pl - internetowy serwis snowboardowy</title>
  4. <link>http://www.deska.pl</link>
  5. <description>Wiadomości z deska.pl</description>
  6. <language>pl</language>
  7. <copyright>Copyright Š deska.pl</copyright>
  8. <?php
  9. include("config.php");
  10. $query = "(SELECT * FROM page_news WHERE status = 2)
  11. UNION
  12. (SELECT * FROM page_article WHERE status = 2)
  13. ORDER by id DESC";
  14. $result = mysql_query($query);
  15. while($row = mysql_fetch_assoc($result)) {
  16. echo '
  17. <item>
  18. <title>'.$row['tytul'].'</title>
  19. <link>http://deska.pl/news_id.php?id='.$row['id'].'</link>
  20. <description>'.$row['mini_tresc'].'</description>
  21. </item>';
  22. }
  23. ?>
  24. </channel>
  25. </rss>


I nie wiem jeszcze jak zrobić, żeby przed tytułem pisało "News:" albo "Artykuł:" (w zależności od tego co się właśnie wyświetla) i chciałbym jeszcze żeby to się wyświetlało nie według id, lecz według daty dodania (date w bazie mam w postaci unixowej w polu int). I jeszcze jedno, dlaczego jak wstawię <xml bla bla kodowanie> to mam całą pustą stronę i nic, no bo bez tego to mi krzaczy "ś" w description kanału.


Z góry dziękuję za pomoc smile.gif
mokry
Skoro łaczysz ze sobą dwie tabele to każdy wyciągnięty rekord ma pewne kolumny, które albo są wypełnione, albo nie. Wybierasz sobie jedną z kolumn i sprawdzasz czy jest pusta w danym rekordzie czy nie. Zakładasz na to if'a i w zależności co wybrałeś piszesz "News:" lub "Artykuł:".
in5ane
No to mi pomogłeś z jednym najmniej ważnym kawałkiem, najbardziej chodzi mi o to czemu mi nie wyświetla.
mokry
No a jak ma Ci wyświetlać skoro nie dałeś do kodu tego if'a?
in5ane
Nie rozumiem :/
Ten if miał być właśnie do tego wyświetlania czy tylko do tych napisów "News:" lub "Artykuł:" ?
mokry
Pokaż jakie tablice są zwracane przez skrypt.
in5ane
Skrypt właśnie nic nie zwraca. Jak wbije na stronę to nie ma żadnej informacji.
A w źródle mam tyle:
  1. <rss version="2.0">
  2. <channel>
  3. <title>deska.pl - internetowy serwis snowboardowy</title>
  4. <link>http://www.deska.pl</link>
  5. <description>Wiadomoci z deska.pl</description>
  6. <language>pl</language>
  7. <copyright>Copyright deska.pl</copyright>
  8. </channel>
  9. </rss>
dr_bonzo
- wlacz wyswietlanie bledow
- wrzuc to zapytanie bezposrednio do bazy, zobacz co ci zwraca, czy masz jakeis bledy
in5ane
A robiłem też tak, że zapytanie bez UNIONA (pojedyncze) i wtedy nie pokazywało nic jak było description. Jak usunąłem description i był tylko tytuł to śmigało.

-----------------------------EDIT-----------------------------

Teraz mam taki kod:
  1. <rss version="2.0">
  2. <channel>
  3. <title>deska.pl - internetowy serwis snowboardowy</title>
  4. <link>http://www.deska.pl</link>
  5. <description><![CDATA[Wiadomości z deska.pl - newsy, artykuły]]></description>
  6. <language>pl</language>
  7. <copyright>Copyright Š deska.pl</copyright>
  8. <?php
  9. include("config.php");
  10. $query = "(
  11. SELECT `id` , `tytul` , `mini_tresc`
  12. FROM page_news
  13. WHERE STATUS =2
  14. )
  15. UNION (
  16. SELECT `id` , `tytul` , `mini_tresc`
  17. FROM page_article
  18. WHERE STATUS =2
  19. )
  20. ORDER BY id DESC ";
  21. $result = mysql_query($query);
  22. while($row = mysql_fetch_assoc($result)) {
  23. echo '
  24. <item>
  25. <title>'.$row['tytul'].'</title>
  26. <link>http://deska.pl/news_id.php?id='.$row['id'].'</link>
  27. <description><![CDATA['.$row['mini_tresc'].']]></description>
  28. </item>';
  29. }
  30. ?>
  31. </channel>
  32. </rss>


No i wyświetla mi description, ale w ogóle nie ma artykułów (a jak sprawdzałem zapytanie w phpMyAdmin to śmigało ładnie), no i jeszcze chciałem przed każdym tytułem wyświetlić napis "News: " albo "Artykuł: " (w zależności od tego co jest wyświetlane), ale nie wiedziałem jaki warunek dać do IF'a. Proszę o pomoc smile.gif
dr_bonzo
  1. SELECT `id` , `tytul` , `mini_tresc`, 'news' AS rss_type
  2. FROM page_news WHERE STATUS =2
  3. )
  4. UNION (
  5. SELECT `id` , `tytul` , `mini_tresc`, 'article' AS rss_type
  6. FROM page_article WHERE STATUS =2
  7. )
  8. ORDER BY id DESC ";


teraz prosciej?
in5ane
Tak smile.gif

EDIT: już wiem, czemu nie ma artykułów, ponieważ pokazuje tylko daną ilość tych informacji (newsów też wszystkich nie ma).

A nie, jednak nadal nie wyświetla nic z artykułów ;(
Nie mam pojęcia czemu, a dodałem teraz nowy artykuł.

Nie wiem również, czemu ten RSS ładuje się raz na 5 razy (średnio). Trzeba odświeżać, żeby coś wyświetlił.

EDIT: zerknijcie sami co do tego ładowania TUTAJ LINK.
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.