Feed & Php-koppelinsfile werkt niet
Mijn feed die ik wil maken werkt niet. Ik wil een feed maken waarbij een PHP bestand nieuwe vacatures ophaalt uit de databse. Kan iemand mij helpen ? De velden die ik wil meenemen staan bij SELECT.....FROM.
Dit is het PHP-bestand:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
header 'content-Type: application/xml; charset=UTF-8'; //Het is een XML-bestand
echo '<rss version=\"2.0\">\n';
echo '<channel>\n';
echo '<title>Marks Pagina</title>\n ';
echo '<link>http://www.vacature-werkt.nl/Vacature-zoeken-feed.xml</link>\n ';
echo '<description>De RSS-feed van Marks Pagina.</description>\n ';
echo '<language>nl</language>\n';
// Verbinding maken
$conn = mysql_connect('******','*****','****');
if(!$conn) {
echo 'Error: cannot make connexion. Please contact ##.<br />';
} else {
echo 'There is an connexion with the database.<br />';
}
// Database selecteren
$db = mysql_select_db('*****');
if(!$db) {
echo 'Error: cannot make connexion. Please contact Search Jobs Abroad.<br />';
} else {
echo 'Database selected.<br />';
}
$qry = "SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY datum DESC LIMIT 10";
while($rss_feed = mysql_fetch_assoc($sql))
{
$id = $rss_feed['id'];
$naamvacature = $rss_feed['naamvacature'];
$datum = $rss_feed['datum'];
$vacaturebeschrijving = stripslashes($rss_feed['vacaturebeschrijving']);
$vacaturebeschrijving = htmlspecialchars($vacaturebeschrijving); //Alle html tekens omzetten in leesbare tekens
echo '<item>\n';
echo '<title>'.$naamvacature.'</title>\n';
echo '<pubdate>'.$datum.'</pubdate>';
echo '<link>http://www.jesite.nl/link/naar/het/artikel/'.id.'</link>\n';
echo '<description>'.$vacaturebeschrijving.'...</description>\n';
echo '</item>\n';
echo '</channel>\n';
echo '</rss>';
?>
header 'content-Type: application/xml; charset=UTF-8'; //Het is een XML-bestand
echo '<rss version=\"2.0\">\n';
echo '<channel>\n';
echo '<title>Marks Pagina</title>\n ';
echo '<link>http://www.vacature-werkt.nl/Vacature-zoeken-feed.xml</link>\n ';
echo '<description>De RSS-feed van Marks Pagina.</description>\n ';
echo '<language>nl</language>\n';
// Verbinding maken
$conn = mysql_connect('******','*****','****');
if(!$conn) {
echo 'Error: cannot make connexion. Please contact ##.<br />';
} else {
echo 'There is an connexion with the database.<br />';
}
// Database selecteren
$db = mysql_select_db('*****');
if(!$db) {
echo 'Error: cannot make connexion. Please contact Search Jobs Abroad.<br />';
} else {
echo 'Database selected.<br />';
}
$qry = "SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY datum DESC LIMIT 10";
while($rss_feed = mysql_fetch_assoc($sql))
{
$id = $rss_feed['id'];
$naamvacature = $rss_feed['naamvacature'];
$datum = $rss_feed['datum'];
$vacaturebeschrijving = stripslashes($rss_feed['vacaturebeschrijving']);
$vacaturebeschrijving = htmlspecialchars($vacaturebeschrijving); //Alle html tekens omzetten in leesbare tekens
echo '<item>\n';
echo '<title>'.$naamvacature.'</title>\n';
echo '<pubdate>'.$datum.'</pubdate>';
echo '<link>http://www.jesite.nl/link/naar/het/artikel/'.id.'</link>\n';
echo '<description>'.$vacaturebeschrijving.'...</description>\n';
echo '</item>\n';
echo '</channel>\n';
echo '</rss>';
?>
En dit is het XML-bestand:
<rss version="2.0">
<channel>
<item>
<title>De titel van het item - 1</title>
<link>http://www.jesite.nl/link/naar/het/artikel/</link>
<pubdate>Wed, 24 Feb 2010 19:05:58 +0000</pubdate>
<creator>Auteur</creator>
<description>Het hele artikel, een gedeelte of een samenvatting ervan.</description>
</item>
<item>
<title>De titel van het item - 2</title>
<link>http://www.jesite.nl/link/naar/het/artikel/</link>
<pubdate>Wed, 24 Feb 2010 19:05:58 +0000</pubdate>
<creator>Auteur</creator>
<description>Het hele artikel, een gedeelte of een samenvatting ervan.</description>
</item>
</channel>
</rss>
Gewijzigd op 17/09/2011 16:20:46 door Jjriet petersen
mysql_query($qry);
en denk om foutafhandeling
maar waar moet ik dat dan zetten en welke velden ? (ik ben een beginner) Bovenstaand script is met copy/past in elkaar gesleuteld.
if($qry){
//gadoor
}
else{
echo mysql_error();
}
Er gaat dus iets niet goed. Graag word ik hierbij geholpen.
Verder heb ik nog een vraag. Hoe kan ik het .php bestand koppelen aan het .xml bestand ?
Gewijzigd op 18/09/2011 19:41:27 door jjriet petersen
Ik ben nu een stapje verder en er lijkt nu wel wat beweging te komen in de feed. Maar waarom wordt er geen link weergegevens als ik de pagina http://www.vacature-werkt.nl/Vacature-zoeken-feed1.php ga bekijken ? Ik zou dan toch alle vacatures moeten zien die ik uit de betreffende tabel in de database haal ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
// Verbinding maken
$conn = mysql_connect('localhost','databasenaam','wachtwoord');
// Database selecteren
$db = mysql_select_db('databasenaam');
$RSSTITLE = 'Vacatures Werken';
$RSSDESC = 'Vacature Werkt';
$RSSLINK = 'http://www.vacature-werkt.nl';
echo '<channel>
<title>'.$RSSTITLE.'</title>
<description>'.$RSSDESC.'</description>
<link>'.$RSSLINK.'</link>
<language>nl</language>
<title>24</title>
<lastBuildDate>'.date('r', getlastmod() ).'</lastBuildDate>
<generator>Vacature Werkt</generator>
<category>Vacatures</category>
<managingEditor>[email protected]</managingEditor>
<webMaster>[email protected]</webMaster>
<copyright>(c) '.date('Y').' - Peter de Strater</copyright>
';
$data = mysql_query('SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY datum DESC LIMIT 10');
while($row = mysql_fetch_assoc ($data)) {
echo '<item>
<link>'.$RSSLINK.'</link>
<title>'.htmlspecialchars($row['naamvacature']).'</title>
<description>'.htmlspecialchars(substr($row['vacaturebeschrijving'], 0, 200)).'</description>
<guid>http://www.vacature-werkt.nl/Vacaturegegevens.php?id='.$show->id.'</guid>
</item>
';
}
echo '</channel>';
?>
// Verbinding maken
$conn = mysql_connect('localhost','databasenaam','wachtwoord');
// Database selecteren
$db = mysql_select_db('databasenaam');
$RSSTITLE = 'Vacatures Werken';
$RSSDESC = 'Vacature Werkt';
$RSSLINK = 'http://www.vacature-werkt.nl';
echo '<channel>
<title>'.$RSSTITLE.'</title>
<description>'.$RSSDESC.'</description>
<link>'.$RSSLINK.'</link>
<language>nl</language>
<title>24</title>
<lastBuildDate>'.date('r', getlastmod() ).'</lastBuildDate>
<generator>Vacature Werkt</generator>
<category>Vacatures</category>
<managingEditor>[email protected]</managingEditor>
<webMaster>[email protected]</webMaster>
<copyright>(c) '.date('Y').' - Peter de Strater</copyright>
';
$data = mysql_query('SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY datum DESC LIMIT 10');
while($row = mysql_fetch_assoc ($data)) {
echo '<item>
<link>'.$RSSLINK.'</link>
<title>'.htmlspecialchars($row['naamvacature']).'</title>
<description>'.htmlspecialchars(substr($row['vacaturebeschrijving'], 0, 200)).'</description>
<guid>http://www.vacature-werkt.nl/Vacaturegegevens.php?id='.$show->id.'</guid>
</item>
';
}
echo '</channel>';
?>
In principe maakt het me niet veel als er maar uit mijn php databse alle vacatures gehaald worden, deze omgezet worden naar een feed (en ik die later kan gebruiken om ze naar twitter te forwarden) vind ik alles prima. Maar het moet echt wel eenvoudig blijven. Anders wordt het niks bij jij denk ik.
Zo voorkom je dat je een typfout in een XML-syntax maakt, waarnaar je straks uuren zit te turen.Maar goed, pas eerst eens foutafhandeling toe.
header zetten, text/xml
Boven in het bestand heb ik dit geplaatst:
In IE ziet het er dan anders uit maar in FireFox kjrijg ik "Dit XML-bestand lijkt geen geassocieerde stijlinformatie te hebben. De documentstructuur is hieronder weergegeven."
Wat ik verder vreemd vind vind is dat ik geen klikbare LINK te zien krijg ?
De XML-feed zoals het document heet behoort door een client (tof programma, of script) te worden uitgelezen, waarna die opmaak zelf eraan kan toevoegen.
http://www.vacature-werkt.nl/Vacature-zoeken-feed1.php doet hij niet bepaald DYNAMSCH aan ? Het ziet eruit als een normaal .php file maar niet als een dynamische.
ok, maar waarom als ik ga naar Foutafhandeling.............
http://www.phphulp.nl/php/script/php-algemeen/simpel-rss-feed-script/238/
Het voorbeeld op mijn site staat op:
http://www.vacature-werkt.nl/Vacature-zoeken-feed1.php
WERKT NIET !!
In FF geeft hij als foutmelding:
ML-parsefout: troep na documentelement
Locatie: http://www.vacature-werkt.nl/Vacature-zoeken-feed2.php
Regelnummer 12, kolom 1:<rss version="2.0">
^
Dit is het script::
bedankt voor de tips maar ik gebruik nu het volgende script: Het voorbeeld op mijn site staat op:
http://www.vacature-werkt.nl/Vacature-zoeken-feed1.php
WERKT NIET !!
In FF geeft hij als foutmelding:
ML-parsefout: troep na documentelement
Locatie: http://www.vacature-werkt.nl/Vacature-zoeken-feed2.php
Regelnummer 12, kolom 1:<rss version="2.0">
^
Dit is het script::
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?
// plaats de header
header("Content-Type: application/xml; charset=UTF-8");
// laad de database connectie
require("connecten.php");
// laad de 5 laatst toegevoegde artikelen uit de database
$sql = mysql_query("SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY id DESC LIMIT 5");
// plaats rss informatie
echo("<rss version=\"2.0\">\n");
echo("<channel>\n");
echo("<title>Titel van je pagina</title>\n");
echo("<link>link naar je website</link>\n");
echo("<description>korte omschrijving van je website</description>\n");
echo("<language>taalinstelling</language>\n");
// laad de artikelen uit de database
while($rss_feed = mysql_fetch_assoc($sql))
{
// filter de extra slashes
$artikel = stripslashes($rss_feed['vacaturebeschrijving']);
// zet alle html karakters om in leesbare tekens
$artikel = htmlspecialchars($vacaturebeschrijving);
// plaats de artikelen
echo("<item>\n");
echo("<title>".$rss_feed['naamvacature']."</title>\n");
echo("<link>url van je website www.vacature-werkt.nl/Vacaturegegevens.php?id".$rss_feed['id']."</link>\n");
echo("<description>".$vacaturebeschrijving."</description>\n");
echo("</item>\n");
}
// sluit de rss informatie
echo("</channel>\n");
echo("</rss>");
?>
// plaats de header
header("Content-Type: application/xml; charset=UTF-8");
// laad de database connectie
require("connecten.php");
// laad de 5 laatst toegevoegde artikelen uit de database
$sql = mysql_query("SELECT id, naamvacature, vacaturebeschrijving FROM vacatures ORDER BY id DESC LIMIT 5");
// plaats rss informatie
echo("<rss version=\"2.0\">\n");
echo("<channel>\n");
echo("<title>Titel van je pagina</title>\n");
echo("<link>link naar je website</link>\n");
echo("<description>korte omschrijving van je website</description>\n");
echo("<language>taalinstelling</language>\n");
// laad de artikelen uit de database
while($rss_feed = mysql_fetch_assoc($sql))
{
// filter de extra slashes
$artikel = stripslashes($rss_feed['vacaturebeschrijving']);
// zet alle html karakters om in leesbare tekens
$artikel = htmlspecialchars($vacaturebeschrijving);
// plaats de artikelen
echo("<item>\n");
echo("<title>".$rss_feed['naamvacature']."</title>\n");
echo("<link>url van je website www.vacature-werkt.nl/Vacaturegegevens.php?id".$rss_feed['id']."</link>\n");
echo("<description>".$vacaturebeschrijving."</description>\n");
echo("</item>\n");
}
// sluit de rss informatie
echo("</channel>\n");
echo("</rss>");
?>
Check je source op: http://www.vacature-werkt.nl/Vacature-zoeken-feed2.php
Gewijzigd op 25/09/2011 21:16:30 door - Ariën -
http://www.phphulp.nl/php/script/php-algemeen/simpel-rss-feed-script/238/
daar stond het ook op deze wijze weergeven.
Waar zie jij html ? ik zie alléén php staan. Zou dat het probleem zijn ?
geen idee: ik heb letterlijk gecopy-pasted van het script van daar stond het ook op deze wijze weergeven.
Waar zie jij html ? ik zie alléén php staan. Zou dat het probleem zijn ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
<rss version="2.0">
<channel>
<title>Titel van je pagina</title>
<link>link naar je website</link>
<description>korte omschrijving van je website</description>
<language>nl</language>
</channel>
</rss>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
<rss version="2.0">
<channel>
<title>Titel van je pagina</title>
<link>link naar je website</link>
<description>korte omschrijving van je website</description>
<language>nl</language>
</channel>
</rss>
Dit gaat never nooit werken.
Gewijzigd op 25/09/2011 21:23:27 door - Ariën -
ah oké nu zie ik het ook als ik via FF kijk. Hoe krijg ik dat dan weg ? Dit wil ik natuurlijk niet ?
Gewijzigd op 25/09/2011 21:29:56 door - Ariën -
te zien. Waar is dat van ?
EN waarom zie ik niks weergeven ? WOrdt de SQL wel goed gedraaid ?
Gewijzigd op 25/09/2011 21:49:45 door jjriet petersen