login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP+RSS wordt afgebroken...

Offline jc2 - 11/05/2008 16:24 (laatste wijziging 14/05/2008 18:52)
Avatar van jc2PHP interesse Ik heb een database met gegevens.
Die gegevens wil ik omzetten naar een rss-bestand.
Bijv.:
  1. <xml>
  2. <title>test1</title>
  3. <datum>11-05-2008</datum>
  4. </xml>
  5. <xml>
  6. <title>test2</title>
  7. <datum>11-05-2008</datum>
  8. </xml>
  9. enz.


Op zich lijkt mij dat er met de php-code niks mis is, maar toch komt het resultaat er bijv. zo uit te zien:
  1. <xml>
  2. <title>test1</title>
  3. <datum>11-05-2008</datum>
  4. </xml>
  5. <xml>
  6. <title>test2</title>
  7. <datum>12-05-2008</datum>
  8. </xml>
  9. <xml>
  10. <title>test3</title>
  11. <datum>13-05-2008</datum>
  12. </xml>
  13. <xml>
  14. <title>test4</title>
  15. <datum>14-05-2008</datum>
  16. </xml>
  17. <xml>
  18. <title>test5</title>
  19. <datum>15-05-2008


Oftewel, de code stopt ineens en slaat het bestand op zonder het af te maken. Dit is overigens niet bij het laatste record in de database, maar zomaar ergens midden. Ook niet altijd op dezelfde plaats.

Nu heb ik al geprobeerd om het volgende bij de php-functie die de RSS parst te zetten, maar het resultaat blijft gelijk:
  1. if(rssfunctie($string)=="true"){
  2. ...
  3. }
  4. else{
  5. ...
  6. }


Zijn er meer onder jullie die wel eens met dit probleem te maken hebben gehad? En hebben jullie dit weten op te lossen?

Update op verzoek van Wim:

rsstoxml.php:
  1. <?php
  2. require("../../db/configuratie.php");
  3. include("rssparser.php");
  4.  
  5. // Query om gegevens te selecteren voor in het xml document
  6. $write2xmlQ = "SELECT * FROM mijntabel WHERE type='1' ORDER BY datum DESC";
  7. $write2xmlS = "SELECT * FROM mijntabel";
  8. if(xml_write($write2xmlQ,'../rss.xml')=="true"){
  9. header("location:index.php");
  10. }
  11. else{
  12. echo "FOUTMELDING";
  13. }
  14. ?>


rssparser.php:
  1. <?php
  2. function xml_write($sQuery,$sDirectoryfile)
  3. {
  4. if(substr($sQuery, 0, 6) != 'SELECT')
  5. {
  6. die('De opgegeven query is niet geldig!');
  7. }
  8.  
  9. $rRows = mysql_query($sQuery) or die(mysql_error());
  10.  
  11. $sDocument = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<packagelist version=\"1\" xmlns=\"http://xspf.org/ns/0/\">\r\n<title>RSS</title>\r\n<tracelist>\r\n";
  12.  
  13. while(($aImage = mysql_fetch_assoc($rRows)) !== false)
  14. {
  15. $sDocument .= "<xml>\r\n";
  16. $sDocument .= "<title>test".$aImage['id']."</title>\r\n";
  17. $sDocument .= "<datum>".$aImage['datum']."</datum>\r\n";
  18. $sDocument .= "</xml>\r\n";
  19. }
  20.  
  21. $sDocument .= "</tracelist>\r\n</packagelist>\r\n</xml>";
  22.  
  23. $rFile = fopen($sDirectoryfile, 'w');
  24. fwrite($rFile, $sDocument);
  25. fclose($rFile);
  26.  
  27. return true;
  28. }
  29. ?>

5 antwoorden

Gesponsorde links
Offline Wim - 11/05/2008 16:59
Avatar van Wim Crew algemeen zet eens wat meer code; volgens mij zit je fout elders...
Offline jc2 - 12/05/2008 20:35
Avatar van jc2 PHP interesse heeft er iemand nog een idee?
Offline Ontani - 13/05/2008 12:18
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
  1. while(($aImage = mysql_fetch_assoc($rRows)) !== false)
  2. {
  3. $sDocument .= "<xml>\r\n";
  4. $sDocument .= "<title>test".$aImage['id']."</title>\r\n";
  5. $sDocument .= "<datum>".$aImage['datum']."</datum>\r\n";
  6. $sDocument .= "</xml>\r\n";
  7. }


Logisch toch dat hij dan bij elke record <xml> gaat zetten:

  1. $sDocument .= "<xml>\r\n";
  2. while(($aImage = mysql_fetch_assoc($rRows)) !== false)
  3. {
  4. $sDocument .= "<title>test".$aImage['id']."</title>\r\n";
  5. $sDocument .= "<datum>".$aImage['datum']."</datum>\r\n";
  6. }
  7. $sDocument .= "</xml>\r\n";
Offline jc2 - 14/05/2008 17:50
Avatar van jc2 PHP interesse nee, het probleem is dat hij zomaar afgekapt wordt.
je wordt al doorgestuurd naar de index-pagina voordat de code in z'n geheel naar het bestand is geschreven.

p.s.: ik heb de tagnamen vervangen naar degene die ik in het voorbeeld gebruikt heb. Waar bij $sDocument nu '<xml>' staat, staat in de echte code een naam. Beetje verkeerd voorbeeld gekozen denk 
Offline TotempaaltJ - 14/05/2008 18:52
Avatar van TotempaaltJ PHP interesse echo $sDocument eens, dan weet je of het aan het schrijven of aan de string ligt! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s