Page 1 sur 2

Insertion xml dans BDD

Posté : 29 avr. 2009, 10:07
par Romuald632
Bonjour à tous,
Nouveau sur le forum XML, car de plus de boitE vous file leur liste de produits au format XML.
J'ai regardé qqe tutos pour intégrer le fichier XML dans ma BDD
Voici mon code XML
<?xml version="1.0" ?> 
<articles> 
  <article>
  <title>Citadines Paris Didot Alésia</title>
  <desc>Studio tout équipé pour 1 à 2 pers., avec cuisine, TV, chaîne hi-fi</desc>
  </article> 
  <article> 
    <title>Citadines Paris La Défense</title>
    <desc>Studio tout équipé pour 1 à 2 pers., avec cuisine, TV, chaîne hi-fi</desc> 
  </article> 
</articles>
Et voici mon code PHP pour intégrer dans ma base :
<?php
header('Content-Type: text/html; charset=UTF-8');
mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('hotel_bol');
$citadines_xml = simplexml_load_file('citadines.xml'); 
foreach ($citadines_xml ->article as $article) { 
    print "Nom de la residence: {$article->title} <br />\n"; 
    print "Description: {$article->desc} <hr />\n"; 
    mysql_query("INSERT INTO hotels SET nom_etab='".($article->title)."' AND description_etab='".($article->desc)."'") or die("Erreur MySQL : ".mysql_error()); 
}  
?> 
J'ai un souci pa d'insertion dans la BDD
Merci de votre aide

Posté : 29 avr. 2009, 13:10
par D4Y
essai p-e sans les parenthèses:
 mysql_query("INSERT INTO hotels SET nom_etab='".$article->title."' AND description_etab='".$article->desc."'") or die("Erreur MySQL : ".mysql_error());  

Posté : 29 avr. 2009, 16:43
par Romuald632
Salut,
non non ça met rien dans la BDD

Posté : 29 avr. 2009, 16:46
par Nagol
"ca met rien" ca n'aide pas beaucoup à aider

message d'erreur SQL? message d'erreur php?

Posté : 29 avr. 2009, 17:02
par Romuald632
Bonjour,
J'ai une page blanche, sans message d'erreur, et rien dans la BDD...

Posté : 29 avr. 2009, 17:04
par Yosh
Si les print ne fonctionne même pas, je ne vois pas comment les données pourraient être écrite dans la BDD.

As-tu bien vérifier l'installation de ton php et de mysql?

Posté : 29 avr. 2009, 17:10
par Nagol
met un error_reporting(E_ALL); en haut de ta page et tu verras les erreurs.

Posté : 29 avr. 2009, 17:21
par Romuald632
Pour répondre à Yosh, je nai a priori pas de souci avec PHP et MyAdmin.
Quant au error_reporting(E_ALL); (que je ne connais pas) a priori pas d'erreur
<?xml version="1.0" ?> 
<articles> 
  <article>
  <title>Citadines Paris Didot Alésia</title>
  <desc>Studio tout équipé pour 1 à 2 pers., avec cuisine, TV, chaîne hi-fi</desc>
  </article> 
  <article> 
    <title>Citadines Paris La Défense</title>
    <desc>Studio tout équipé pour 10 personnes, avec cuisine, TV, chaîne hi-fi</desc> 
  </article> 
</articles>

<?php
 error_reporting(E_ALL); 
header('Content-Type: text/html; charset=UTF-8');
mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('cit_xml');

$citadines_xml = simplexml_load_file('citadines.xml'); 
foreach ($citadines_xml ->article as $article) { 
    print "Nom de la residence: {$article->title} <br />\n"; 
    print "Description: {$article->desc} <hr />\n"; 
mysql_query("INSERT INTO hotels SET nom_etab='".$article->title."' AND description_etab='".$article->desc."'") or die("Erreur MySQL : ".mysql_error());

}  
?> 

Posté : 29 avr. 2009, 17:27
par Yosh
Tu es sur de ta syntaxe
$citadines_xml ->article as $article
?

Posté : 29 avr. 2009, 17:32
par Romuald632
Je suis parti d'un tuto, pcq totalement novice en XML, donc je suis sûre de rien !

Posté : 29 avr. 2009, 17:34
par Nagol
<?xml version="1.0" ?>
ca commence comme du php, mais ce n'est pas du php :)
<?php echo '<?xml version="1.0" ?>'; ?>
error_reporting ca va en haut, cad vraiment tout en haut sinon ca sert à rien.

Posté : 29 avr. 2009, 17:37
par Romuald632
Donc si ça va en haut ça retourne ça :
error_reporting(E_ALL); Studio tout équipé pour 1 à 2 pers., avec cuisine, TV, chaîne hi-fi Studio tout équipé pour 10 personnes, avec cuisine, TV, chaîne hi-fi 

Posté : 29 avr. 2009, 17:39
par Nagol
...

c'est du php hein, tu es bien conscient que si se trouve pas à l'intérieur d'une séquence <?php ?> ca risque pas de marcher?

Posté : 29 avr. 2009, 17:41
par Nagol
autre chose

header

ne fonctionnes pas si tu as du html avant donc de toute maniere ton script se finit sur le header ou avant et tu as une erreur que tu aurais vu si tu avais eu un error_reporting activé, au boulot romuald, tu ne voit pas ce qui se passe.

Posté : 29 avr. 2009, 17:41
par Romuald632
Comme ça c'est mieux ?
<?php
error_reporting(E_ALL);  
header('Content-Type: text/html; charset=UTF-8');
mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('cit_xml');

$citadines_xml = simplexml_load_file('citadines.xml'); 
foreach ($citadines_xml ->article as $article) { 
    print "Nom de la residence: {$article->title} <br />\n"; 
    print "Description: {$article->desc} <hr />\n"; 
mysql_query("INSERT INTO hotels SET nom_etab='".$article->title."' AND description_etab='".$article->desc."'") or die("Erreur MySQL : ".mysql_error());

}  
?>