Mysql vers XML pour Flash

theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008 - 9 avril 2008 à 08:14
theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008 - 9 avril 2008 à 16:14
Bonjour à tous


J'ai trouvé un bout de code pour générer un xml à la volé en sortie de BDD Mysql pour une mise à jour d'une galerie en Flash.swf
Ca fonctionne bien mais ça n'interprète pas pareil le résultat.
Je débute dans tout ça et j'ai bien essayé de tordre le script dans tous les sens mais j'obtiens que des erreures.


Quelqu'un a une idée svp ?


//////////////////////////CODE


<?php
$db_name = "ma_base";
$link = mysql_connect("mon_serveur", "mon_user", "mon_passe") or die("Connexion impossible.");
$table_name = 'ma_table';
$db = mysql_select_db($db_name, $link);


 
$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 .="\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 .="\t<$champs>" . $contenu . "</$champs>\r\n";   
  }
         }
$_xml .="

";
fwrite($file, $_xml); fclose($file);
        echo "Le fichier XML a etait créé Show source.";
}
else {
    echo "erreur";

?>




//////////////////////////////////


//J'obtiens


  <?xml version="1.0" encoding="UTF-8" ?>

  <filename>image_01.jpg</filename>
  <thumbnail>s_image_01.jpg</thumbnail>
  <description>Image 01</description>

<?xml version="1.0" encoding="utf-8"?>




//Et il faudrait une interprétation comme ça pour le .swf

 

7 réponses

faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
9 avril 2008 à 09:21
Tu peux tres bien te servir du premier fichier xml pour le transmettre dans ton flash....

Il te suffit juste de taper au bon endroit d'un noeud! tu as quoi en code as dans ton flash?

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
Don't forget accept
0
theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 09:30
Bonjour,

J'ai ça mais suis pas sûr qu'il faille tout changer dans flash après !

******** CODE FLASH ****************************

photo_filename = new Array();
photo_thumbnail = new Array();
photo_description = new Array();


filepath = "../photos/";


// Load the photos XML
var flashmo_xml = new XML();
flashmo_xml.ignoreWhite = true;
flashmo_xml.onLoad = function()
{
 var nodes:Array = this.firstChild.childNodes;
 for(var i=0;i<nodes.length;i++)
 {
  photo_filename.push(nodes[i].attributes.filename);
  photo_thumbnail.push(nodes[i].attributes.thumbnail);
  photo_description.push(nodes[i].attributes.description);
 }
 
}
flashmo_xml.load(filepath + "gallerie.xml");
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
9 avril 2008 à 10:06
  photo_filename.push(nodes[i].attributes.filename);
  photo_thumbnail.push(nodes[i].attributes.thumbnail);
  photo_description.push(nodes[i].attributes.description);

remplace par :

  photo_filename.push(nodes[i].firstchild);
  photo_thumbnail.push(nodes[i].firstchild);
  photo_description.push(nodes[i].firstchild);

(car dans ton cas tu veux le texte (le premier noeud de ton noeud...) et non les attributs !!!

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
Don't forget accept
0
theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 10:29
Réponse du panneau sortie Flash
(J'avais essayé de changer ces lignes)

Error opening URL "[file:///d|/xxxxxxxxxx/www/xxxxxxxxxx/photos/undefined file:///d|/xxxxxxxxxx/www/xxxxxxxxxx/photos/undefined]"

C'est pour ça que je pensais ajuster dans le code php, mais je continu...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
9 avril 2008 à 14:04
Il te ressort juste ca comme erreur ? error opening url?

Si oui, ca vient pas de la méthode de traitement des noeuds mais juste que c'est pas la bonne url ou la bonne méthode pour ouvrir celle ci....

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
Don't forget accept
0
theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 16:12
Alors voilà, apres plusieur jours de recherche et de test,

J'ai donc gardé ma première idée de ne pas intervenir sur le script de Flash mais sur php. En effet Flash va plus vite à lire du XML donc il faut garder son script et exploser le PHP de manière à optimiser la réponse.

Ce qui donne (Sans erreur chez moi)

***** CODE php pour générer XML à la volée *******************


<?php
$db_name = "ma_base";
$link = mysql_connect("mon_serveur", "mon_user", "mon_passe") or die("Connexion impossible.");
$table_name = 'ma_table';
$db = mysql_select_db($db_name, $link);




$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("../dossier/fichier.xml", "w"); 
  $_xml ="<?xml version="1.0" encoding="utf-8" ?>\r\n"; 
  $_xml .="\r\n"; 
  while
   ($row = mysql_fetch_array($result))
   { 
  if ($row["idalbum"]=8)
   { 
  $_xml .="\t";
  $_xml .="\t

\r\n";
   } 
  
   }
 
 
$_xml .="

";
fwrite($file, $_xml); fclose($file);
        echo "Le fichier XML a etait créé Voir source.";
}
else {
    echo "erreur";

?>

****************************************************************************
0
theday Messages postés 5 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 9 avril 2008
9 avril 2008 à 16:14
Et [résolu]
0
Rejoignez-nous