xml + php - XML/XSL - Programmation
Marsh Posté le 12-02-2009 à 08:01:48
while ($row = mysql_fetch_array($result)) {
for ($i=0;$i<$nombre;$i++){
c'est redondant !
Deja, utilise plutot $row = mysql_fetch_assoc que mysql_fetch_array : tu peux ensuite faire $row['maclonne'] plutot que $row[0] c'est bcp plus lisible
mysql_fetch_assoc (et mysql_fetch_array) retourne une ligne de résultat a chaque fois, donc il n'est pas necessaire de faire ensuite un for de 0 à nombre.
Enleve le for a l'interieur de while et ca devrait etre bon
Marsh Posté le 12-02-2009 à 14:25:29
Un petit truc pour faire du xml à partir d'SQL...
$query = "SELECT concat( '<el1>', col1, '</el1>', '<el2>', col2, '</el2>', '<el3>', col3, '</el3>') FROM `une_table` WHERE 1"; |
Marsh Posté le 12-02-2009 à 00:26:29
bonjour je suis tout nouveau dans la programmation.
je suis en train de vouloir inserer des donnees d une bd dans un xml.ma table a 3 champs id , prenom et age.
tout s'inserer bien dans le xml mais 3 fois a chaque noeud.
$query = "select * from " . $table_name;
$result = mysql_query($query) or die("Impossible d'interroger la base de données" );
$num = mysql_num_rows($result);
// connaître le nbre de champs
$nombre=mysql_num_fields($result);
// s'il y a des résultats
if ($num != 0) {
$file= fopen("../photos/gallerie.xml", "w" );
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$_xml .="<gallery xmlns:media=\"http://search.yahoo.com/mrss/\">\r\n";
$_xml .="<settings>\r\n";
$_xml .="<mediaFolder type=\"large\" media=\"video\">video/</mediaFolder>\r\n";
$_xml .="<mediaFolder type=\"thumbnail\" media=\"video\">video/thumbs/</mediaFolder>\r\n";
$_xml .="<mediaFolder type=\"large\" media=\"swf\">video/</mediaFolder>\r\n";
$_xml .="<mediaFolder type=\"thumbnail\" media=\"swf\">video/thumbs/</mediaFolder>\r\n";
$_xml .="<mediaFolder type=\"large\" media=\"image\">wallimages/</mediaFolder>\r\n";
$_xml .="<mediaFolder type=\"thumbnail\" media=\"image\">wallimages/</mediaFolder>\r\n";
$_xml .="</settings>\r\n";
while ($row = mysql_fetch_array($result)) {
for ($i=0;$i<$nombre;$i++){ $champs=mysql_field_name($result,$i);
//convertit en utf8 pour les caractères accentués.
$contenu=utf8_encode($row[$champs]);
$_xml .="<item description=\"" . $row["age"] . "\" title=\"" . $row["prenom"] . "\">\r\n";
$_xml .="<media:text>" . $row["prenom"] . " </media:text>\r\n";
$_xml .="<media:content url=\"" . $row["id"] . " .jpg\" type=\"image/jpeg\" width=\"450\" height=\"338\" />\r\n";
$_xml .="</item>\r\n";
}
}
$_xml .="</gallery>";
fwrite($file, $_xml); fclose($file);
echo "Le fichier XML a etait créé <a href=\"../photos/gallerie.xml\">Show source.</a>";
}
else {
echo "erreur";
}
?>
-------------------------------------
ceci qui donne
-------------------------
+ <item description="21" title="baby love">
<media:text>baby love</media:text>
<media:content url="1 .jpg" type="image/jpeg" width="450" height="338" />
</item>
- <item description="21" title="baby love">
<media:text>baby love</media:text>
<media:content url="1 .jpg" type="image/jpeg" width="450" height="338" />
</item>
- <item description="21" title="baby love">
<media:text>baby love</media:text>
<media:content url="1 .jpg" type="image/jpeg" width="450" height="338" />
</item>
- <item description="19" title="solene">
<media:text>solene</media:text>
<media:content url="2 .jpg" type="image/jpeg" width="450" height="338" />
</item>
- <item description="19" title="solene">
<media:text>solene</media:text>
<media:content url="2 .jpg" type="image/jpeg" width="450" height="338" />
</item>
- <item description="19" title="solene">
<media:text>solene</media:text>
<media:content url="2 .jpg" type="image/jpeg" width="450" height="338" />
</item>
pourquoi?????