Insertion xml dans BDD

Eléphant du PHP | 287 Messages

29 avr. 2009, 10:07

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

D4Y
Eléphant du PHP | 52 Messages

29 avr. 2009, 13:10

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());  

Eléphant du PHP | 287 Messages

29 avr. 2009, 16:43

Salut,
non non ça met rien dans la BDD

ViPHP
ViPHP | 3300 Messages

29 avr. 2009, 16:46

"ca met rien" ca n'aide pas beaucoup à aider

message d'erreur SQL? message d'erreur php?
Fait du php depuis que ca existe ou presque :)

Eléphant du PHP | 287 Messages

29 avr. 2009, 17:02

Bonjour,
J'ai une page blanche, sans message d'erreur, et rien dans la BDD...

Mammouth du PHP | 568 Messages

29 avr. 2009, 17:04

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?

ViPHP
ViPHP | 3300 Messages

29 avr. 2009, 17:10

met un error_reporting(E_ALL); en haut de ta page et tu verras les erreurs.
Fait du php depuis que ca existe ou presque :)

Eléphant du PHP | 287 Messages

29 avr. 2009, 17:21

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());

}  
?> 

Mammouth du PHP | 568 Messages

29 avr. 2009, 17:27

Tu es sur de ta syntaxe
$citadines_xml ->article as $article
?

Eléphant du PHP | 287 Messages

29 avr. 2009, 17:32

Je suis parti d'un tuto, pcq totalement novice en XML, donc je suis sûre de rien !

ViPHP
ViPHP | 3300 Messages

29 avr. 2009, 17:34

<?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.
Fait du php depuis que ca existe ou presque :)

Eléphant du PHP | 287 Messages

29 avr. 2009, 17:37

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 

ViPHP
ViPHP | 3300 Messages

29 avr. 2009, 17:39

...

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?
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 3300 Messages

29 avr. 2009, 17:41

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.
Fait du php depuis que ca existe ou presque :)

Eléphant du PHP | 287 Messages

29 avr. 2009, 17:41

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());

}  
?>