Bonjour,
Je souhaite importer un flux XML dans une base de donnée MYSQL.
Cependant, mon flux contient des apostrophes dans le champ description ce qui bloque l'insertion dans la base de donnée.
Autrement je souhaite pouvoir récupérer le nom de la catégorie ("Orchidee") pour l'insérer dans ma base mais je ne vois pas comment faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<?xml version="1.0" encoding="iso-8859-1"?> <productFeed version="0" timestamp="20080413:13:49:55"> <product id="960" delete="false"> <name>ORCHIDEE JAUNE</name> <productURL>http://affiliation.florajet.com/track.php?redir=ZGV0YWlsLnBocD9wYXlzPTcyJnByb2R1aXQ9OTYw&appel=perez_468</productURL> <imageURL>http://www.florajet.com/produits/150/960.jpg</imageURL> <price>44.00</price> <description> <![CDATA[Originaire des régions tropicales et sub-tropicales d'Asie, l'orchidée papillon est très floriflère.Ses hampes retombantes portent des fleurs toute l'année, plus ou moins rondes et étoilées qui peuvent durer jusqu'à huit semaines. On l'apprécie pour sa facilité de culture. <br /><br />]]> </description> <fields> </fields> <categories> <category name="Orchidee" /> </categories> </product>
Code PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php //connection a la base de donnee $dbhost = "localhost"; $dbuser = "root"; // mysql user $dbpass = ""; // mysql password $dbname = "spip"; // mysql database $conn=mysql_connect($dbhost,$dbuser,$dbpass) or die(erreurServeurMySQL()); mysql_select_db($dbname,$conn) or die('Erreur de selection '.mysql_error()); $flux = simplexml_load_file('http://localhost/spip/catalogue.xml'); foreach ($flux->product as $item) { $nom = $item->name; $url = $item->productURL; $image = $item->imageURL; $prix = $item->price; $description = $item->description; $fields = $item->fields; $categorie = $item->categories; $sql = "INSERT INTO `affiliation_fleurs` (`id`, `nom`, `url`,`image`,`prix`,`description`,`fields`, `categorie`) VALUES ('', '$nom', '$url', '$image','$prix','$description','$fields','$categorie')"; $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); echo 'données inserées en base'; } ?>
Merci pour votre aide,
José
Partager