Problème script PHP rss

Fermé
Toons43 - 3 oct. 2007 à 14:44
 Alain42 - 3 oct. 2007 à 21:03
Bonjour à tous,

Je débute en PHP et j'ai un problème avec un script que j'aimerais utiliser pour mon site. Celui-ci permet de créer un flux RSS à partir de mes données dans ma baseSQL
En fait dans mon code je fais 2 requêtes sur 2 tables différentes, le problème est que l'url que je souhaite afficher prend les premières valeurs de ma table et non pas celles en rapport avec mes autres données.

Voici mon code
<?
Header("content-type: application/xml");
// En-tête
echo "<"."?xml version=\"1.0\" encoding=\"ISO-8859-1\"?".">
<rss version=\"2.0\">
	<channel>
		<title>Flux RSS</title>
		<link>http://www.monsite.com</link>
		<description>Flux rss de mon site</description>
";


// Connexion
mysql_connect("localhost", "root", "123456"); // Connexion à MySQL
mysql_select_db("maBaseMySQL"); // Sélection de la base coursphp

// Sélection des fiches
$RS = mysql_query("SELECT Description, Marchand, Date_fin FROM reduction ORDER BY Marchand");
$RS2 = mysql_query("SELECT Categorie, ID, Marchand FROM marchand") or die(mysql_error()); // Requête SQL
// Listing

while($val=mysql_fetch_array($RS) AND $val2 = mysql_fetch_assoc($RS2))

 {
	echo "	<item>
		<title>".$val["Marchand"]."</title>
		<link>http://www.monsite.com/repertoire/".$val2['Categorie']."/".$val2['ID']."-".$val2['Marchand'].".htm</link>
		<description>".$val["Description"]."</description>
		<pubDate>".gmdate('D, d M Y H:i:s',$val["Date_fin"])." GMT</pubDate>
	</item>
";
}

// Déconnexion
mysql_close();

// Fin d'affichage
echo "	</channel>
</rss>
";
?>


Les valeurs Categorie, ID et Marchand de la balise <link> ne correspondent pas avec la valeur Marchand de la balise <title>

Si vous pouviez m'aider, ce serait super sympa

D'avance merci

Bonne journée
A voir également:

1 réponse

Bonsoir,

while($val=mysql_fetch_array($RS) AND $val2 = mysql_fetch_assoc($RS2))

les deux extractions de ta base $RS et $RS2 n'ont certainement pas le même nombre de lignes, ta condition AND dans la boucle while ne doit pas fonctionner.

il faut que tu t'orientes vers une seule requette SQL qui fasse une jointure entre tes deux tables. Et après tu feras ta boucle while

Vas voir sur Google comment faire
0