Créer un xml via php
Fermé
dualengine
Messages postés
5
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
-
18 mars 2009 à 19:30
sebshiva Messages postés 194 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 17 juin 2010 - 19 mars 2009 à 12:57
sebshiva Messages postés 194 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 17 juin 2010 - 19 mars 2009 à 12:57
A voir également:
- Créer un xml via php
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Comment creer un pdf - Guide
2 réponses
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
18 mars 2009 à 21:40
18 mars 2009 à 21:40
Salut!
Qu'est ce que tu n'arrive pas à faire?
Qu'est ce que tu n'arrive pas à faire?
dualengine
Messages postés
5
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
19 mars 2009 à 00:20
19 mars 2009 à 00:20
non pas enorme de donnée par contre elle est succeptible de changer souvent ... donc faut que ce soit dynamique et le xml soit formater exactement de la bonne maniere vu que c'est lu via une anim flash.
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
19 mars 2009 à 00:27
19 mars 2009 à 00:27
ok, je regarde ça de suite et te propose un code...
à revoir parce que si ton modèle de données ou la quantité varie (en augmentant, ce qui est toujours le cas)
il faudra repenser la fonction...
A dans pas longtemps...
à revoir parce que si ton modèle de données ou la quantité varie (en augmentant, ce qui est toujours le cas)
il faudra repenser la fonction...
A dans pas longtemps...
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
>
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
19 mars 2009 à 00:53
19 mars 2009 à 00:53
Bon, ce n'est pas testé c'est plus pour la logique de fonctionnement...
Donne moi ton avis...
Donne moi ton avis...
$xml=""; $title=''; $Requete = " SELECT title, artIcon FROM tb_gallery "; $ResultTitle=mysql_query($Requete) while($row=mysql_fetch_array($ResultTitle)) { $xml.='<gallery title=\"'.$row['title'].'\" artIcon=\"'.$row['artIcon'].'\">\n\r'; $RequeteItem = " SELECT icon, full, title_item FROM tb_gallery_item WHERE idTitle=idItem"; //je ne connais pas la structure de ta table mais je suppose qu'il y a un id pour chaque table qui te permet de retrouver tes petits...... $ResultItem=mysql_query($RequeteItem) while($rowItem=mysql_fetch_array($ResultItem)) { $xml.='<item icon=\"'.$rowItem['icon'].'\" full=\"'.$rowItem['full'].'\">\n\r'; $xml.='<title>'.$rowItem['title_item'].'</title>\n\r'; $xml.='</item>\n\r'; $xml.='<item icon=\"'.$rowItem['icon'].'\" full=\"'.$rowItem['full'].'\">\n\r'; $xml.='<title>'.$rowItem['title_item'].'</title>\n\r'; $xml.='</item>\n\r'; }
dualengine
Messages postés
5
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
>
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
19 mars 2009 à 12:43
19 mars 2009 à 12:43
Salut sebshiva, merci pour ton aide, ton idée ma fait réfléchir à un système et j epense que j'y suis arrivé, je vais faire des test avec différentes entrées dans la base de donnée mais pour le moment sa marche.
Mon php:
<?php
//connexion à la database
$db = mysql_connect("localhost", "root", "mysql");
//séléction de la base
mysql_select_db("olivia" , $db);
//requête
//$Requete = " SELECT menuLabel, title, subHeader, body FROM news ";
//$Requete = " SELECT tb_gallery.title, artIcon, icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery";
$Requete = " SELECT id, title, artIcon FROM tb_gallery ";
//resultat
$Resultat = mysql_query( $Requete ) or die(mysql_error());
$num = mysql_num_rows($Resultat);
//echo ($num);
if ($num != 0) {
$file= fopen("media.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$_xml .="<xml>\r\n";
while ($row = mysql_fetch_array($Resultat)) {
$_xml .="\t<gallery title=\"" . $row["title"] . "\" artIcon=\"" . $row["artIcon"] . "\">\r\n";
$RequeteItem = " SELECT tb_gallery_item.icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery WHERE tb_gallery.id= ". $row["id"]." " ;
$ResultatItem = mysql_query( $RequeteItem ) or die(mysql_error());
while ($rowItem = mysql_fetch_array($ResultatItem)) {
$_xml .="\t<item icon=\"" . $rowItem["icon"] . "\" full=\"" . $rowItem["full"] . "\">\r\n";
$_xml .="\t\t<title>" . $rowItem["title_item"] . "</title>\r\n";
$_xml .="\t</item>\r\n";
}
$_xml .="\t</gallery>\r\n";}
$_xml .="</xml>";
fwrite($file, $_xml);
fclose($file);
echo "XML has been written. <a href=\"media.xml\">View the XML.</a>";
} else {
echo "No Records found";
}
?>
qu'est ce que tu en pense?
Mon php:
<?php
//connexion à la database
$db = mysql_connect("localhost", "root", "mysql");
//séléction de la base
mysql_select_db("olivia" , $db);
//requête
//$Requete = " SELECT menuLabel, title, subHeader, body FROM news ";
//$Requete = " SELECT tb_gallery.title, artIcon, icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery";
$Requete = " SELECT id, title, artIcon FROM tb_gallery ";
//resultat
$Resultat = mysql_query( $Requete ) or die(mysql_error());
$num = mysql_num_rows($Resultat);
//echo ($num);
if ($num != 0) {
$file= fopen("media.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$_xml .="<xml>\r\n";
while ($row = mysql_fetch_array($Resultat)) {
$_xml .="\t<gallery title=\"" . $row["title"] . "\" artIcon=\"" . $row["artIcon"] . "\">\r\n";
$RequeteItem = " SELECT tb_gallery_item.icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery WHERE tb_gallery.id= ". $row["id"]." " ;
$ResultatItem = mysql_query( $RequeteItem ) or die(mysql_error());
while ($rowItem = mysql_fetch_array($ResultatItem)) {
$_xml .="\t<item icon=\"" . $rowItem["icon"] . "\" full=\"" . $rowItem["full"] . "\">\r\n";
$_xml .="\t\t<title>" . $rowItem["title_item"] . "</title>\r\n";
$_xml .="\t</item>\r\n";
}
$_xml .="\t</gallery>\r\n";}
$_xml .="</xml>";
fwrite($file, $_xml);
fclose($file);
echo "XML has been written. <a href=\"media.xml\">View the XML.</a>";
} else {
echo "No Records found";
}
?>
qu'est ce que tu en pense?
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
>
dualengine
Messages postés
5
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
19 mars 2009 à 12:57
19 mars 2009 à 12:57
Salut,
J'en pense que c'est mon idée que tu as retenu et c'est 100€...
Nan, j'déconne.
Je ne comprend pas pourquoi tu lie tes deux tables dans la sous requête...
J'en vois pas trop l'intérêt (je suis sans doute passé à côté de quelque chose...)...
Sinon, l'autre idée que j'avais hier soir, (je rencontre un problème un peu similaire au tiens en terme de requêtes imbriquées en ce moment...) Afin de limiter le nombre de requête au serveur MySQL (qui suivant le nombre d'enregistrement risque de morfler) , ne faire qu'une requête pour récupérer toutes les infos dont tu as besoin et de les stocker dans un array bien indexé afin de pouvoir les re-manipuler comme tu veux et à volonté sans re-soliciter le seveur MySQL...
J'espère avoir été clair...
Ton avis est aussi le bienvenue! ;)
J'en pense que c'est mon idée que tu as retenu et c'est 100€...
Nan, j'déconne.
Je ne comprend pas pourquoi tu lie tes deux tables dans la sous requête...
J'en vois pas trop l'intérêt (je suis sans doute passé à côté de quelque chose...)...
Sinon, l'autre idée que j'avais hier soir, (je rencontre un problème un peu similaire au tiens en terme de requêtes imbriquées en ce moment...) Afin de limiter le nombre de requête au serveur MySQL (qui suivant le nombre d'enregistrement risque de morfler) , ne faire qu'une requête pour récupérer toutes les infos dont tu as besoin et de les stocker dans un array bien indexé afin de pouvoir les re-manipuler comme tu veux et à volonté sans re-soliciter le seveur MySQL...
J'espère avoir été clair...
Ton avis est aussi le bienvenue! ;)
18 mars 2009 à 22:18
J'ai une table tb_galery avec 3 champs: id, title et artIcon
et j'ai une autre table tb_galery_item avec 5 champs: id , icon, full, title_item et gallery
le champ galery et relié à la table tb_galery via id
En gros j'ai une table qui gére les galeries avec un icon par galerie et j'ai une table qui gère les images que j'affecte à une galerie.
J'emploi donc la requete Sql suivante:
SELECT tb_gallery.title, artIcon, icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery
Dans mon exemple j'ai 2 galeries avec 2 images dans chaque gallerie, cette requete me renvoi donc un tableau :
title artIcon icon full title_item
J'Aime Pas l'Amour image-mini1.jpg micheli7-pt.jpg micheli7.jpg micheli7
J'Aime Pas l'Amour image-mini1.jpg fourez1-pt.jpg fourez1.jpg fourez
RockFest 2009 album_1_icon.png icon_1.png full_1.png titre 1
RockFest 2009 album_1_icon.png icon_2.png full_2.png titre 2
je veux trouver une commande php pour formater c'est données sous la forme d'un XML qui respecte ce format:
<gallery title="J'Aime Pas l'Amour " artIcon="image-mini1.jpg">
<item icon="micheli7-pt.jpg" full="micheli7.jpg">
<title>
micheli7
</title>
</item>
<item icon="fourez1-pt.jpg" full="fourez1.jpg">
<title>
fourez
</title>
</item>
</gallery>
<gallery title="RockFest 2009" artIcon="album_1_icon.png">
<item icon="icon_1.png" full="full_1.png">
<title>
titre 1
</title>
</item>
<item icon="icon_2.png" full="full_2.png">
<title>
titre2
</title>
</item>
</gallery>
18 mars 2009 à 23:24
$xml="";
$a=0;
while($row=mysql_fetch_array($ResultatDeTaRequête))
{
$header = ($a++ & 1) ? 1 : 0;
if ($header===1)
$xml.='<gallery title=\"'.$row['title'].'\" artIcon=\"'.$row['artIcon'].'\">\n\r';
$xml.='<item icon=\"'.$row['icon'].'\" full=\"'.$row['full'].'\">\n\r';
$xml.='<title>'.$row['title_item'].'</title>\n\r';
$xml.='</item>\n\r';
$xml.='<item icon=\"'.$row['icon'].'\" full=\"'.$row['full'].'\">\n\r';
$xml.='<title>'.$row['title_item'].'</title>\n\r';
$xml.='</item>\n\r';
}
Petit bout de code fait à l'arrache, dans le cas ou tu n'as qu'un title_item par galerie...
Tien smoi au jus si ça marche... je peux te conseiller autre chose sinon...
18 mars 2009 à 23:56
moi je faisais sa pour le moment:
<?php
//connexion à la database
$db = mysql_connect("localhost", "root", "mysql");
//séléction de la base
mysql_select_db("olivia" , $db);
//requête
$Requete = " SELECT tb_gallery.title, artIcon, icon, full, title_item FROM tb_gallery INNER JOIN tb_gallery_item ON tb_gallery.id=tb_gallery_item.gallery";
//resultat
$Resultat = mysql_query( $Requete ) or die(mysql_error());
$num = mysql_num_rows($Resultat);
if ($num != 0) {
$file= fopen("media.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$_xml .="<xml>\r\n";
while ($row = mysql_fetch_array($Resultat)) {
if ($row["title"]) {
$_xml .="\t<gallery title=\"" . $row["title"] . "\" artIcon=\"" . $row["artIcon"] . "\">\r\n";
$_xml .="\t<item icon=\"" . $row["icon"] . "\" full=\"" . $row["full"] . "\">\r\n";
$_xml .="\t\t<title>" . $row["title_item"] . "</title>\r\n";
$_xml .="\t</item>\r\n";
$_xml .="\t</gallery>\r\n";
} else {
$_xml .="\t<gallery title=\"Nothing Returned\">\r\n";
$_xml .="\t\t<title>none</title>\r\n";
$_xml .="\t</gallery>\r\n";
} }
$_xml .="</xml>";
fwrite($file, $_xml);
fclose($file);
echo "XML has been written. <a href=\"media.xml\">View the XML.</a>";
} else {
echo "No Records found";
}
mais du coup j'obtient un xml formaté comme sa:
<xml>
−
<gallery title="J'Aime Pas l'Amour" artIcon="media_gallery_assets/image-mini1.jpg">
−
<item icon="media_gallery_assets/micheli7-pt.jpg" full="media_gallery_assets/micheli7.jpg">
<title>micheli7</title>
</item>
</gallery>
−
<gallery title="J'Aime Pas l'Amour" artIcon="media_gallery_assets/image-mini1.jpg">
−
<item icon="media_gallery_assets/fourez1-pt.jpg" full="media_gallery_assets/fourez1.jpg">
<title>fourez</title>
</item>
</gallery>
−
<gallery title="RockFest 2009" artIcon="album_art/album_1_icon.png">
−
<item icon="media_gallery_assets/icon_1.png" full="media_gallery_assets/full_1.png">
<title>image 1</title>
</item>
</gallery>
−
<gallery title="RockFest 2009" artIcon="album_art/album_1_icon.png">
−
<item icon="media_gallery_assets/icon_2.png" full="media_gallery_assets/full_2.png">
<title>image 2</title>
</item>
</gallery>
</xml>
et comme tu le vois c pas ce que je veux...
si tu pense a quelque chose n'hésite pas...
Merci d'avance
Dual
19 mars 2009 à 00:13
Parce que si non, j'ai bien une idée...