sql vers rss

Eléphanteau du PHP | 20 Messages

18 mars 2007, 19:39

Bonjour,

je suis en train d'essayer de construire un flux rss depuis une base de donnée.
Le problème c'est que le fichier xml en sortie reste vide.
Quelqu'un aurait il la gentillesse de voir si j'ai commis une erreur dans le code ?
<?php

// édition du début du fichier XML
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Titre du channel</title>';
$xml .= '<link>http://www.monsite.com</link>';
$xml .= '<description>Description du channel</description>';

// connexion a la base
@mysql_connect($host='****',$user='*****',$pwd='****') or die("Connexion impossible");
@mysql_select_db($base='****') or die("Echec de selection de la base");

// selection des 5 dernieres annonces
$res=mysql_query("SELECT * FROM websiteadmin_re_ads ORDER BY date DESC LIMIT, 10");


// extraction des informations et ajout au contenu
while($tab=@mysql_fetch_array($res)){   
	$id=$tab[id];
	$headline=$tab[headline];
	$price=$tab[price];
	$description=$tab[description];
	$date=$tab[date];
	$date2=date("D, d M Y H:i:s", strtotime($date));

	$xml .= '<item>';
	$xml .= '<id>'.$id.'</id>';
	$xml .= '<headline>'.$headline.'</headline>';
	$xml .= '<price>'.$price.'</price>';
	$xml .= '<link>www.test.com</link>';
	$xml .= '<date>'.$date.' GMT</date>'; 
	$xml .= '<description>'.$description.'</description>';
	$xml .= '</item>';	
} 

// édition de la fin du fichier XML
$xml .= '</channel>';
$xml .= '</rss>';

// écriture dans le fichier
$fp = fopen("flux.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
@mysql_close();

?> 
Merci d'avance :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 mars 2007, 19:53

Salut,

Test simple : affichage de la variable $xml après la boucle

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 mars 2007, 19:54

C'est le fichier xml qui est vide ou le flux rss ?

La syntaxe de ton LIMIT en SQL ne me semble pas correcte, il ne devrait pas y avoir de virgule entre l'instruction et la valeur...

Tu devrais virer les "@" et gérer les éventuelles erreurs plutôt que de les cacher, ca te donnerait sans doute plus d'info sur ce qui ne va pas ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 49 Messages

19 mars 2007, 07:03

Autre piste (en plus de celles déjà citées pour lesquelles je plussoie *de toute force*): une chaine a une longueur limitée.
Et à la place :
$tab[price]
mets :
$tab['price']