Bonjour à tous, je voudrais savoir comment récupérer en xml toute la liste des images d'une base de donnée en les classant dans leurs albums respectif.
La base de donnée se compose d'une table image, avec un champ id, albumid (pour le numéro de l'album) et nom (pour le nom de l'image)
voila le résultat que j'essaye d'obtenir :
<dossier albumid="2">
<image nom="2.jpg"/>
<image nom="3.jpg"/>
<image nom="4.jpg"/>
</dossier>
<dossier albumid="3">
<image nom="5.jpg"/>
<image nom="3.jpg"/>
</dossier>
...(ainsi de suite pour tous les albums et images)
Pour l'instant j'arrive à récupérer toutes la liste de mes albums avec une première requête :
select DISTINCT albumid from image
Mais lorsque je rajoute une deuxieme requête dans la premiere (pour la liste des images), cela m'affiche des messages d'erreur.
Voici mon code :
<?php
$db_name = "mabase";
$connection = mysql_connect("localhost", "root", "") or die("Connexion impossible.");
$db = mysql_select_db($db_name);
$query = "select DISTINCT albumid from image ORDER BY albumid";
$query2 = "select * from image ORDER BY albumid";
$result = mysql_query($query, $connection) or die("Impossible d'interroger la base de données");
$result2 = mysql_query($query2, $connection) or die("Impossible d'interroger la base de données");
$num = mysql_num_rows($result);
$file= fopen("results3.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
if ($num != 0) {
/////////ma premiere boucle pour la liste d'album
while ($a = mysql_fetch_array($result)) {
{$_xml .=" <dossier albumid=\"" . $a["albumid"] . "\"/>
///////// la ou devrait etre normalement ma deuxieme boucle pour la liste d'image de cette album
while ($b = mysql_fetch_array($result2))
{if ($b["albumid"]==$a["albumid"]){$_xml .="<image nom=\"" . $b["nom"] . ".jpg\"/>\r\n";}}
</dossier>\r\n";
}}
fwrite($file, $_xml);
fclose($file);
echo "XML à été écrit. <a href=\"results3.xml\">Voir le XML.</a>";
} else {
echo "No Records found";
}
?>
Si il y a une autre solution je suis preneur.
Merci pour votre aide !