Je suis en train de faire un backoffice pour une gestion de galerie web en flash.
J'ai un petit soucis, je souhaite créer un xml a partir d'un script php suivant des requetes sql.
je consulte qu'un seule table qui contient cinq colonnes:
| categorie | projet | nom_img | larg_img | Haut_img |
Voici le script PHP
<?php
$sql_host = "localhost";
$sql_user = "root";
$sql_pwd = "";
$sql_port = "3306";//pas du tout obligatoire si vous avez laissé le port par défaut
$sql_db = "cote_archi";
$sql_table = "galerie_web";
//$i_cat="0";
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\n";
$xml .= '<photoalbum>'."\n";
if($id = mysql_connect($sql_host,$sql_user,$sql_pwd))//Si j'arrive à me connecter avec ses paramêtres
{ if($id_db = mysql_select_db($sql_db))//Puis à cette base de données
{
//Préparation requete 1 (rechereche les différent album)
$query = 'SELECT DISTINCT categorie FROM '.$sql_table.' GROUP BY categorie';
// on envoie la requête
$req = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
//on ecrit dans le xml
$xml .= '<categorie texte="'.$data['categorie'].'">'."\n";
//Préparation requete 2 (rechereche les différent projet dans la categorie)
$query2 = 'SELECT projet FROM '.$sql_table.' WHERE categorie LIKE "'.$data['categorie'].'"';
//envoie la requete 2
$req2 = mysql_query($query2) or die('Erreur SQL !<br>'.$query2.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data2 = mysql_fetch_assoc($req2))
{
$xml .= '<btn texte="'.$data2['projet'].'" vignette="2">'."\n";
$xml .= '<images>'."\n";
//Préparation requete (rechereche les différentes images du projet)
$query3 = 'SELECT nom_img, larg_img, haut_img FROM '.$sql_table.' WHERE projet LIKE "'.$data2['projet'].'"';
//envoie la requete
$req3 = mysql_query($query3) or die('Erreur SQL !<br>'.$query3.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data3 = mysql_fetch_assoc($req3))
{
$xml .= '<image imagename="'.$data3['nom_img'].'" chemin="images/Projet/'.$data2['projet'].'/" larg="'.$data3['larg_img'].'" hauteur="'.$data3['haut_img'].'">'."\n";
}
$xml .= '</images>'."\n";
$xml .= '</btn>'."\n";
}
$xml .= '</categorie>'."\n";
}
$xml .= '</photoalbum>'."\n";
file_put_contents("images.xml",$xml);
mysql_close($id);
echo "c'est fait";
}
else
{
echo "conexion impossibe";
}
}
?>
et voici le resultat XMLCode : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<photoalbum>
<categorie texte="collectif">
<btn texte="collect1" vignette="2">
<images>
<image imagename="P1040737.JPG" chemin="images/Projet/collect1/" larg="150" hauteur="152">
<image imagename="photo - profil.jpg" chemin="images/Projet/collect1/" larg="150" hauteur="152">
</images>
</btn>
<btn texte="collect1" vignette="2">
<images>
<image imagename="P1040737.JPG" chemin="images/Projet/collect1/" larg="150" hauteur="152">
<image imagename="photo - profil.jpg" chemin="images/Projet/collect1/" larg="150" hauteur="152">
</images>
</btn>
</categorie>
<categorie texte="individuel">
<btn texte="le 1er" vignette="2">
<images>
<image imagename="P1040773.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040774.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040775.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
</images>
</btn>
<btn texte="le 1er" vignette="2">
<images>
<image imagename="P1040773.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040774.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040775.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
</images>
</btn>
<btn texte="le 1er" vignette="2">
<images>
<image imagename="P1040773.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040774.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
<image imagename="P1040775.JPG" chemin="images/Projet/le 1er/" larg="150" hauteur="152">
</images>
</btn>
<btn texte="le 2eme" vignette="2">
<images>
<image imagename="P1040711.JPG" chemin="images/Projet/le 2eme/" larg="150" hauteur="152">
<image imagename="P1040712.JPG" chemin="images/Projet/le 2eme/" larg="150" hauteur="152">
</images>
</btn>
<btn texte="le 2eme" vignette="2">
<images>
<image imagename="P1040711.JPG" chemin="images/Projet/le 2eme/" larg="150" hauteur="152">
<image imagename="P1040712.JPG" chemin="images/Projet/le 2eme/" larg="150" hauteur="152">
</images>
</btn>
</categorie>
</photoalbum>
Comme vous pouvez le constater, je dois avoir un problème de boucle puisque j'ai des albums en double voire en triple, mais ne comprends d'ou ça peut venir.
Je dois certainement mal comprendre comment fonctionne "while($data = mysql_fetch_assoc($req)) ".
un petit coup de main ne serait pas de refus.
Merci @ tous