krijg rss feed niet aan de praat
storem - 27/05/2007 10:36
Nieuw lid
hallo,
Ik probeer voor mijn website wielerbasis.nl een rss feed te maken voor het nieuws, maar het wil me nog niet echt lukken.
ik heb een bestand aangemaakt genaamd rss.xml overgenomen van een andere site van mij.
En bij het nieuws toevoegen in de admin heb ik dit net als bij de andere site enkel de link anders, maar hij werkt niet weet iemand de oplossing?
function create_rss() {
$rss_feed = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
$rss_feed .= '<rss version="2.0">'."\r\n";
$rss_feed .= '<lastBuildDate>'.date("r").'</lastBuildDate>'."\r\n";
$rss_feed .= '<language>nl-nl</language>'."\r\n";
$sql = mysql_query("SELECT id,titel,bericht,DATE_FORMAT(datum,'%d-%m-%Y %H:%i') as post_date FROM nieuws WHERE actief=1 ORDER BY datum DESC LIMIT 10") or die(mysql_error());
while($r = mysql_fetch_assoc($sql)) {
$rss_feed .= '<item>'."\r\n";
$rss_feed .= '<title>'.$r['titel'].'</title>'."\r\n";
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id='.$r['id'].'</link>'."\r\n";
if(strlen($r['bericht']) > 250) {
$rss_feed .= '<description>'.substr($r['bericht'],0,247).'...</description>'."\r\n";
} else {
$rss_feed .= '<description>'.$r['bericht'].'</description>'."\r\n";
}
$rss_feed .= '<pubDate>'.$r['post_date'].'</pubDate>'."\r\n";
$rss_feed .= '</item>'."\r\n";
}
$rss_feed .= '</rss>';
$fp = fopen('../rss.xml','w');
fwrite($fp,$rss_feed);
}
function create_rss() {
$rss_feed = "< ?xml version= \"1.0\" encoding=\" ISO-8859-1\" ?>" ;
$rss_feed .= '<rss version="2.0">' . "\r \n " ;
$rss_feed .= '<lastBuildDate>' . date ( "r" ) . '</lastBuildDate>' . "\r \n " ; $rss_feed .= '<language>nl-nl</language>' . "\r \n " ;
$sql = mysql_query ( "SELECT id,titel,bericht,DATE_FORMAT(datum,'%d -%m-%Y %H:%i') as post_date FROM nieuws WHERE actief=1 ORDER BY datum DESC LIMIT 10" ) or
die ( mysql_error ( ) ) ; $rss_feed .= '<item>' . "\r \n " ;
$rss_feed .= '<title>' . $r [ 'titel' ] . '</title>' . "\r \n " ;
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id=' . $r [ 'id' ] . '</link>' . "\r \n " ;
if ( strlen ( $r [ 'bericht' ] ) > 250 ) { $rss_feed .= '<description>' . substr ( $r [ 'bericht' ] , 0 , 247 ) . '...</description>' . "\r \n " ; } else {
$rss_feed .= '<description>' . $r [ 'bericht' ] . '</description>' . "\r \n " ;
}
$rss_feed .= '<pubDate>' . $r [ 'post_date' ] . '</pubDate>' . "\r \n " ;
$rss_feed .= '</item>' . "\r \n " ;
}
$rss_feed .= '</rss>' ;
$fp = fopen ( '../rss.xml' , 'w' ) ; }
Foutmelding bij toevoegen:
Unknown column 'actief' in 'where clause'
alvast bedankt voor de oplossing
21 antwoorden
Gesponsorde links
Voldemort - 27/05/2007 10:42
PHP ver gevorderde
in je query. De fout zegt dat er geen veld genaamd "actief" in de tabel "nieuws" is.
Geef je tabelstructuur eens.
storem - 27/05/2007 10:53 (laatste wijziging 27/05/2007 11:03)
Nieuw lid
bedankt voldemort voor de snelle reactie. Daar ligt inderdaad de fout. Bij deze gebruik ik geen actief. Hoe kan ik dat uit de RSS halen zodat de code wel goed blijft.:?:
als ik het als volgt doe:
function create_rss() {
$rss_feed = "<?xml version="1.0\" encoding=\"ISO-8859-1\" ?>";
$rss_feed .= '<rss version="2.0">'."\r\n";
$rss_feed .= '<lastBuildDate>'.date("r").'</lastBuildDate>'."\r\n";
$rss_feed .= '<language>nl-nl</language>'."\r\n";
$sql = mysql_query("SELECT id,titel,bericht,DATE_FORMAT(datum,'%d-%m-%Y %H:%i') as post_date FROM nieuws ORDER BY datum DESC LIMIT 10") or die(mysql_error());
while($r = mysql_fetch_assoc($sql)) {
$rss_feed .= '<item>'."\r\n";
$rss_feed .= '<title>'.$r['titel'].'</title>'."\r\n";
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id='.$r['id'].'</link>'."\r\n";
if(strlen($r['bericht']) > 250) {
$rss_feed .= '<description>'.substr($r['bericht'],0,247).'...</description>'."\r\n";
} else {
$rss_feed .= '<description>'.$r['bericht'].'</description>'."\r\n";
}
$rss_feed .= '<pubDate>'.$r['post_date'].'</pubDate>'."\r\n";
$rss_feed .= '</item>'."\r\n";
}
$rss_feed .= '</rss>';
$fp = fopen('../rss.xml','w');
fwrite($fp,$rss_feed);
}
function create_rss() {
$rss_feed = "< ?xml version= "1.0\" encoding=\" ISO-8859-1\" ?>" ;
$rss_feed .= '<rss version="2.0">' . "\r \n " ;
$rss_feed .= '<lastBuildDate>' . date ( "r" ) . '</lastBuildDate>' . "\r \n " ; $rss_feed .= '<language>nl-nl</language>' . "\r \n " ;
$sql = mysql_query ( "SELECT id,titel,bericht,DATE_FORMAT(datum,'%d -%m-%Y %H:%i') as post_date FROM nieuws ORDER BY datum DESC LIMIT 10" ) or
die ( mysql_error ( ) ) ; $rss_feed .= '<item>' . "\r \n " ;
$rss_feed .= '<title>' . $r [ 'titel' ] . '</title>' . "\r \n " ;
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id=' . $r [ 'id' ] . '</link>' . "\r \n " ;
if ( strlen ( $r [ 'bericht' ] ) > 250 ) { $rss_feed .= '<description>' . substr ( $r [ 'bericht' ] , 0 , 247 ) . '...</description>' . "\r \n " ; } else {
$rss_feed .= '<description>' . $r [ 'bericht' ] . '</description>' . "\r \n " ;
}
$rss_feed .= '<pubDate>' . $r [ 'post_date' ] . '</pubDate>' . "\r \n " ;
$rss_feed .= '</item>' . "\r \n " ;
}
$rss_feed .= '</rss>' ;
$fp = fopen ( '../rss.xml' , 'w' ) ; }
Dan krijg ik de volgende fouten:
Warning: fopen(../rss.xml) [function.fopen]: failed to open stream: Permission denied in /home/kats/domains/wielerbasis.nl/public_html/admin/nieuws.php on line 25
Warning: fwrite(): supplied argument is not a valid stream resource in /home/kats/domains/wielerbasis.nl/public_html/admin/nieuws.php on line 26
ikkedikke - 27/05/2007 11:17
PHP expert
Verwijder het bestand rss.xml eens en laat het door php aanmaken.
Je hebt nu het probleem dat de eigenaar van het bestand jouw ftpgebruiker is waarschijnlijk. Wanneer je het door php aan laat maken krijgt het als eigenaar het id van apache.
storem - 27/05/2007 11:20 (laatste wijziging 27/05/2007 11:36)
Nieuw lid
blijf het zelfde houden naar het verwijderen van rss.xml
JBke - 27/05/2007 11:40 (laatste wijziging 27/05/2007 11:41)
PHP gevorderde
verander ook:
lijn 3 eens naar
<?php
$rss_feed = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
?>
<?php
$rss_feed = "<?xml version=\" 1.0\" encoding=\" ISO-8859-1\" ?>" ;
?>
of ' enkele quetes zoals je volgende lijnen??
storem - 27/05/2007 12:01
Nieuw lid
helpt ook niet, de foutmeldingen blijf ik houden en ik krijg ook geen rss pagina.
ikkedikke - 27/05/2007 13:17
PHP expert
Kijk eens na of de server schrijfrechten heeft in de map waar je het neer wil zetten..?
Iets als dit:
<?
var_dump(is_writable(dirname(__FILE__)));
?>
webrik - 30/05/2007 19:28
HTML interesse
als je zorgt dat zowel de map waar hij instaat als het bestand 777 gechmod is werkt hij dan wel?
Thomas - 31/05/2007 12:03 (laatste wijziging 31/05/2007 12:04)
Moderator
Voeg fclose($fp) toe, kan nooit kwaad.
En wellicht moet je met absolute paden werken ($_SERVER['DOCUMENT_ROOT']./pad/naar/je/rss/file/...) in plaats van relatieve paden.
storem - 31/05/2007 21:01
Nieuw lid
Ik heb echt al alles geprobeerd afgelopen dagen, maar het wil me maar niet lukken. Ik heb dit:
function create_rss() {
$rss_feed = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
$rss_feed .= '<rss version="2.0">'."\r\n";
$rss_feed .= '<lastBuildDate>'.date("r").'</lastBuildDate>'."\r\n";
$rss_feed .= '<language>nl-nl</language>'."\r\n";
$sql = mysql_query("SELECT id,titel,bericht,DATE_FORMAT(datum,'%d-%m-%Y %H:%i') as post_date FROM nieuws ORDER BY datum DESC LIMIT 10") or die(mysql_error());
while($r = mysql_fetch_assoc($sql)) {
$rss_feed .= '<item>'."\r\n";
$rss_feed .= '<title>'.$r['titel'].'</title>'."\r\n";
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id='.$r['id'].'</link>'."\r\n";
if(strlen($r['bericht']) > 250) {
$rss_feed .= '<description>'.substr($r['bericht'],0,247).'...</description>'."\r\n";
} else {
$rss_feed .= '<description>'.$r['bericht'].'</description>'."\r\n";
}
$rss_feed .= '<pubDate>'.$r['post_date'].'</pubDate>'."\r\n";
$rss_feed .= '</item>'."\r\n";
}
$rss_feed .= '</rss>';
}
$display_menu = TRUE;
function create_rss() {
$rss_feed = "< ?xml version= \"1.0\" encoding=\" ISO-8859-1\" ?>" ;
$rss_feed .= '<rss version="2.0">' . "\r \n " ;
$rss_feed .= '<lastBuildDate>' . date ( "r" ) . '</lastBuildDate>' . "\r \n " ; $rss_feed .= '<language>nl-nl</language>' . "\r \n " ;
$sql = mysql_query ( "SELECT id,titel,bericht,DATE_FORMAT(datum,'%d -%m-%Y %H:%i') as post_date FROM nieuws ORDER BY datum DESC LIMIT 10" ) or
die ( mysql_error ( ) ) ; $rss_feed .= '<item>' . "\r \n " ;
$rss_feed .= '<title>' . $r [ 'titel' ] . '</title>' . "\r \n " ;
$rss_feed .= '<link>http://www.wielerbasis.nl/index.php?pagina=nieuws&id=' . $r [ 'id' ] . '</link>' . "\r \n " ;
if ( strlen ( $r [ 'bericht' ] ) > 250 ) { $rss_feed .= '<description>' . substr ( $r [ 'bericht' ] , 0 , 247 ) . '...</description>' . "\r \n " ; } else {
$rss_feed .= '<description>' . $r [ 'bericht' ] . '</description>' . "\r \n " ;
}
$rss_feed .= '<pubDate>' . $r [ 'post_date' ] . '</pubDate>' . "\r \n " ;
$rss_feed .= '</item>' . "\r \n " ;
}
$rss_feed .= '</rss>' ;
}
$display_menu = TRUE ;
En dit als RSS
<?xml version="1.0" encoding="ISO-8859-1" ?><rss version="2.0">
<lastBuildDate>Fri, 18 May 2007 07:34:45 +0200</lastBuildDate>
<language>nl-nl</language>
<item>
<title></title>
<link></link>
<description></description>
<pubDate></pubDate>
</item>
</rss>
< ?xml version= "1.0" encoding= "ISO-8859-1" ?> <rss version="2.0">
<lastBuildDate>Fri, 18 May 2007 07:34:45 +0200</lastBuildDate>
<language>nl-nl</language>
<item>
<title></title>
<link></link>
<description></description>
<pubDate></pubDate>
</item>
</rss>
Kan iemand mijn probleem verhelpen? of een tip geven waar ik mogelijk beter de gehele pad naar de RSS moet invullen.
Wim - 31/05/2007 21:12
Crew algemeen
er zit een fout in create_rss op lijn 3:
$rss_feed = " <?xml version=" 1.0\" encoding=\"ISO-8859-1\" ?>";
dit kan het oplossen:
$rss_feed = '<?xml version="1.0" encoding="ISO-8859-1" ?>';
JBke - 31/05/2007 23:23
PHP gevorderde
aan je code kan ik ook enkel bovenvermelde fout vinden, zoals dolfje al vroeg staat er wel iets in je database??
storem - 01/06/2007 18:34
Nieuw lid
@ dolfje: sorry ik ben niet zo goed hierin, waar moet ik de code plaatsen?
@JBKE: ja er staan al nieuwsberichten in de mysql database.
marten - 02/06/2007 10:18
Beheerder
Er staan dus gegevens in de array. Nu moet je de array nog zo zien uit te lezen dat hij de juiste gegevens gaat tonen. Een array kan je uitlezen met de functie foreach. Meer info op http://www.php.net/foreach
storem - 02/06/2007 10:36
Nieuw lid
Ik vind het zo raar dat hij niet gewoon werkt. Ik gebruik precies hetzelfde bij een andere site en die werkt gewoon. Ligt het niet aan een link in de code die ik mogelijk het gehele pad moet geven?
storem - 02/06/2007 11:11 (laatste wijziging 07/06/2007 18:16)
Nieuw lid
Gedaan:
http://www.plaatscode.be/5500 /
Zou iemand me aub kunnen helpen ik wil graag een rss feed voorafgaand aan de tour de france hebben maar wat ik ook probeer niks lukt:'(
Gesponsorde links
Dit onderwerp is gesloten .