Avatar billede TiHs Nybegynder
11. oktober 2007 - 21:00 Der er 20 kommentarer og
1 løsning

Lave rss feed ud fra sql query

Hej eksperter

Jeg har en side hvor der bliver postet indlæg løbende. Disse henter jeg på følgende måde i en news.php:

<?php
include("dbconnect.php");
$getnews = mysql_query("select * from news ORDER BY id DESC");
while($r=mysql_fetch_array($getnews)){
extract($r);
echo("<br><b><font color=\"white\">$title</font><br><font size=\"1px\">Skrevet d. $date ($id)</font><BR>$news</b><br>------------------------------------------<br>");
}
php?>

Hvordan skal jeg lave dette om til et feed ? Har ledt godt og grundigt, og har også fundet flere eksempler, men jeg kan ikke rigtig se hvordan jeg laver denne echo om til noget der ligner xml der ser godt ud ? ..

Og når jeg så har denne xml, hvordan skal jeg så gøre det til en feed side ?

Håber i kan hjælpe ... har måske misforstået det hele ...
Avatar billede jakobdo Ekspert
11. oktober 2007 - 22:14 #1
Måske:

<?php
header("Content-Type: application/xml; charset=ISO-8859-1");
include("dbconnect.php");
$getnews = mysql_query("select * from news ORDER BY id DESC");

echo "<rss version="2.0">\r\n";
echo "<channel>\r\n";

//Info om din side...
echo "<description>Her er min side...</description>\r\n";
echo "<link>http://www.minside.dk</link>\r\n";

while($r=mysql_fetch_array($getnews))
{
    extract($r);
   
   
    echo "<item>\r\n";
    echo "<title>$title</title>\r\n";
    echo "<description>$news</description>\r\n";
    echo "<pubDate>$date</pubDate>>\r\n";
    echo "</item>\r\n";
}

echo "</channel>\r\n";
echo "</rss>\r\n";
?>
Avatar billede TiHs Nybegynder
12. oktober 2007 - 08:37 #2
Hej Jakobdo ... ser fint ud. Er rimelig med på koden. Dog ikke lige på hvad
r gør ?
Jeg får dog følgende fejl ved læsning af siden:
Parse error: syntax error, unexpected T_DNUMBER, expecting ',' or ';' on line 6
Avatar billede jakobdo Ekspert
12. oktober 2007 - 08:46 #3
Ahh, selvfølgelig.
Det er denne linie:
echo "<rss version="2.0">\r\n";
Den skal rettes til:
echo "<rss version=\"2.0\">\r\n";
Avatar billede TiHs Nybegynder
12. oktober 2007 - 08:54 #4
Det ser ud til at køre bedre ja ... men tror ikke den vil acceptere noget tekst der bliver hentet... den siger:
Der blev fundet et ugyldigt tegn i tekstindholdet.
Linje: 7 Tegn: 15
<description>S

troede at Content-Type: application/xml; charset=ISO-8859-1 ville løse dette ?
Avatar billede jakobdo Ekspert
12. oktober 2007 - 09:06 #5
Har du et link til din rss fil?
Avatar billede TiHs Nybegynder
12. oktober 2007 - 09:14 #6
ja ... den hedder

www.villaholdet.dk/rss.php

går ud fra det er den du mener :o)
Avatar billede jakobdo Ekspert
12. oktober 2007 - 09:33 #7
Du skal nok fjerne <br>, så burde det faktisk være ok!
Avatar billede TiHs Nybegynder
12. oktober 2007 - 09:33 #8
Hvis jeg istedet kalder den info.rss, så får jeg fejlen:
XML-dokumentet skal have et element på øverste niveau.
Linje: 0 Tegn: 0
Avatar billede TiHs Nybegynder
12. oktober 2007 - 09:35 #9
<br> i selve det der ligger i tabellen ?
Avatar billede jakobdo Ekspert
12. oktober 2007 - 09:45 #10
Nej, bare i output.
Du kan jo evt. nøjes med:
$new_news = str_replace('<br>','',$news)
echo "<description>$new_news</description>\r\n";
Avatar billede TiHs Nybegynder
12. oktober 2007 - 09:56 #11
oki ... med igen :o)
Men giver så:

Parse error: syntax error, unexpected T_ECHO in /customers/villaholdet.dk/villaholdet.dk/httpd.www/rss.php on line 21

Ser sådan her ud nu:

<?php
header("Content-Type: application/xml; charset=ISO-8859-1");
include("dbconnect.php");
$getnews = mysql_query("select * from news ORDER BY id DESC");

echo "<rss version=\"2.0\">\r\n";
echo "<channel>\r\n";

//Info om din side...
echo "<description>Her er min side...</description>\r\n";
echo "<link>http://www.minside.dk</link>\r\n";

while($r=mysql_fetch_array($getnews))
{
    extract($r);
   
   
    echo "<item>\r\n";
    echo "<title>$title</title>\r\n";
    $new_news = str_replace('<br>','',$news)
    echo "<description>$new_news</description>\r\n";
    echo "<pubDate>$date</pubDate>>\r\n";
    echo "</item>\r\n";
}

echo "</channel>\r\n";
echo "</rss>\r\n";
?>
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:06 #12
manglede bare:
$new_news = str_replace('<br>','',$news);    .. ";"
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:12 #13
Det hele kommer nu ud i en stor pærevælling ... hvordan får jeg det lavet til et feed man kan abonnere på ?
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:19 #14
.. nu laver den fejl igen:

Der blev fundet et ugyldigt tegn i tekstindholdet.
Linje: 7 Tegn: 15

<description>S
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:32 #15
fejl: Der blev fundet et ugyldigt tegn i tekstindholdet.
Linje: 6 Tegn: 10
<title>TR

Du får lige udtræk af tabel:
<villaholdet_dk>
  <!-- Tabel news -->
    <news>
        <id>46</id>
        <title>KAMP 9/4 07</title>
        <date>4 April</date>
        <news>AFLYST, Outsiders 2 Insiders har trukket sit hold.
-HOLDLEDEREN-</news>
    </news>
    <news>
        <id>43</id>
        <title>TRÆNING</title>
        <date>14 February</date>
        <news>Træning igen tirsdag d. 20/2 kl. 18:00. Det er ved at være op over at træningsturneringen starter, og vi vil gerne ud over stepperne allerede fra dag 1. Så husk at møde op kl. 18:00 !!</news>
    </news>
    <news>
        <id>44</id>
        <title>KAMPPROGRAM</title>
        <date>15 March</date>
        <news>Forårets kampprogram er nu lagt ind på siden &quot;kampe&quot; !!! Vi afventer stadig om åbningsdatoen holder, men det ser ud til det !
... God kampe til jer alle -HOLDLEDEREN-</news>
    </news>
    <news>
        <id>42</id>
        <title>TRÆNING</title>
        <date>6 February</date>
        <news>Der er træning tirsdag d. 6/2 kl. 18:00 på banen. Vi ser frem til stort opmøde af Villaholds medlemmerne, da vi ikke længere nyder godt af de unge krafter vi har haft inde på holdet vinteren over.&lt;br&gt;
Tim har en eller to ekstra med i dag ...
</news>
    </news>
    <news>
        <id>33</id>
        <title>TRÆNING</title>
        <date>27 December</date>
        <news>Årets første træning bliver tirsdag d. 2/1. Som sædvanligt på banen kl. 18:00</news>
    </news>
    <news>
        <id>34</id>
        <title>TRÆNING</title>
        <date>6 January</date>
        <news>Træning som sædvanligt på banen kl. 18:00 på Viby Stadion. Tirsdag d. 9/1</news>
    </news>
    <news>
        <id>35</id>
        <title>TRÆNING</title>
        <date>15 January</date>
        <news>Tirsdag d. 16/1 kl. 18:00
På banen</news>
    </news>
    <news>
        <id>36</id>
        <title>TRÆNING</title>
        <date>17 January</date>
        <news>Sikke en gejst, og kampvilje der blev lagt for dagen ved træningen i går 16/1. Det er dejligt at se at der bliver gået til makronerne for at blive top klar til næste sæson. Derfor er der naturligvis træning igen på Tirsdag d. 23/1, kl. 18:00 på banen. Vel mødt !!</news>
    </news>
    <news>
        <id>37</id>
        <title>TRÆNING</title>
        <date>23 January</date>
        <news>Vi ses kl. 18 på banen som sædvanlig. Kom glad og vis det samme humør og indstilling som sidste tirsdag.</news>
    </news>
    <news>
        <id>45</id>
        <title>KAMP 9/4 07</title>
        <date>2 April</date>
        <news>Premieren spilles på udebane hos Outsiders 2 Insiders på Ellekærskolen. Ingen af O2Is kampe er tidssat, derfor kan tiden for kampen endnu ikke oplyses. -God kamp-
HOLDLEDEREN</news>
    </news>
    <news>
        <id>47</id>
        <title>KAMP 15/4 2007</title>
        <date>10 April</date>
        <news>Kl. 09:30 indledes den første hjemmebanekamp mod DGS IF. DGS spillede i deres første udebanekamp mod Skovbakken, og vandt med hele 9-0. Derfor ses det også gerne at alle Villaholdets talenter møder op i særdeles morgenfrisk tilstand, og en kampiver der kan stække selv den mest effektive angrebsmaskine. Vi mødes på stadion kl. 08:45 !!
HOLDLEDEREN</news>
    </news>
    <news>
        <id>48</id>
        <title>KAMP 22/4 07</title>
        <date>16 April</date>
        <news>Kl. 09:30 på Viby Stadion mod Hørning IF. Trods den kontante opvågning fra vinterhiet, er humøret højt, og forventningerne til kampen store !!</news>
    </news>
    <news>
        <id>49</id>
        <title>KAMP 29/4 07</title>
        <date>22 April</date>
        <news>Kl. 12:45 på Bellevue Stadion.&lt;br&gt;Vi mødes kl. 12:00 på Viby Stadion, og kører samlet derud.&lt;br&gt;Jeg forventer mindst en ligeså strålende spillet kamp som den sidste... af Villaholdet naturligvis !!&lt;br&gt;HOLDLEDEREN</news>
    </news>
    <news>
        <id>51</id>
        <title>KAMP 11/5 07</title>
        <date>5 May</date>
        <news>Fredag d. 11/5 07 spiller vi kamp mod AIA/Tranbjerg.&lt;br&gt;Kampen spilles kl. 19:00, så vi mødes på Viby Stadion kl. 18:00 og kører derud samlet.&lt;br&gt;HOLDLEDEREN</news>
    </news>
    <news>
        <id>52</id>
        <title>KAMP 15/5 07</title>
        <date>12 May</date>
        <news>Tirsdag d. 15/5 spiller Villaholdet igen kamp. Denne gang på hjemmebane mod Stautrup IF. Kampen er sat til at starte kl. 18:00, så vi mødes på stadion kl. 17:15... God kamp&lt;br&gt;HOLDLEDEREN</news>
    </news>
    <news>
        <id>55</id>
        <title>TRÆNING</title>
        <date>20 May</date>
        <news>Træning tirsdag d. 22/5 kl. 18:00&lt;br&gt;Mødetid 17:45, forhåbentligt stort opbud, så vi får noget ud af træningen !!&lt;br&gt;HOLDLEDEREN</news>
    </news>
    <news>
        <id>54</id>
        <title>KAMP 20/5 07</title>
        <date>16 May</date>
        <news>Søndag d 20/5 spilles endnu en hjemmekamp. Denne gang mod Skovbakken IK, der pt. ligger nummer 3 i puljen.&lt;br&gt;Kampen fløjtes i gang kl. 9:30, vi mødes kl. 8:55&lt;br&gt;HOLDLEDEREN</news>
    </news>
    <news>
        <id>56</id>
        <title>TRÆNING</title>
        <date>23 May</date>
        <news>Træning tirsdag d. 29/5 kl. 18:00
Vi mødes alle kl. 17:45, til en gang 1-2-3 berøringsfodbold !!&lt;br&gt;HOLDLEDEREN</news>
    </news>
</villaholdet_dk>

koden er stadig i min rss.php:

<?php
header("Content-Type: application/xml; charset=ISO-8859-1");
include("dbconnect.php");
$getnews = mysql_query("select * from news ORDER BY id DESC");

echo "<rss version=\"2.0\">\r\n";
echo "<channel>\r\n";

//Info om din side...
echo "<description>Info fra Villaholdet</description>\r\n";
echo "<link>http://www.villaholdet.dk</link>\r\n";

while($r=mysql_fetch_array($getnews))
{
    extract($r);
   
   
    echo "<item>\r\n";
    echo "<title>$title</title>\r\n";
    $new_news = str_replace('<br>','',$news);
    echo "<description>$new_news</description>\r\n";
    echo "<pubDate>$date</pubDate>>\r\n";
    echo "</item>\r\n";
}

echo "</channel>\r\n";
echo "</rss>\r\n";
?>
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:44 #16
Har lige slettet de indlæg der var der i xml'en med mærkelige tegn. Nu siger den
Der blev fundet et ugyldigt tegn i tekstindholdet.
Linje: 7 Tegn: 25

<description>Kl. 09:30 p

jeg slettede dem fra og med ID 49 og op
Avatar billede TiHs Nybegynder
12. oktober 2007 - 10:46 #17
tegn 25 er et ø
Avatar billede TiHs Nybegynder
12. oktober 2007 - 14:08 #18
Har selv løst den med:

echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";

:o)
takker .. smid et svar
Avatar billede jakobdo Ekspert
14. oktober 2007 - 18:30 #19
Svar!
Avatar billede TiHs Nybegynder
18. oktober 2007 - 14:27 #20
havde lige glemt dig ... sorry
Avatar billede jakobdo Ekspert
18. oktober 2007 - 19:22 #21
Helt ok!
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester