[RESOLU] Intégrer un flux XML dans une bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Intégrer un flux XML dans une bdd

Re: Intégrer un flux XML dans une bdd

par blinz » 14 juin 2015, 11:08

Salut j'ai put tout remplir en bdd c'est cool.
Juste un champ qui me pose toujours problème c'est le champ photo ou dans lequelle je recuperere en fait une url sur mon xml

Dans ma table cette colonne se nomme "photo" et dans mon flux elle se nomme "<largeImage>", pour la petite précision.

Le problème que je rencontre et que tout simplement je ne peut rentrer en bdd l'url, elle se présente sous cette forme par exemple:
<largeImage>http://www.lesite.com/static/0/visuel/3 ... largeImage>

Mon code actuel ou j'en suis :
<?php
    //connection a la base de donnee
    $dbhost = "localhost";
    $dbuser = "root";      // mysql user
    $dbpass = "";       // mysql password
    $dbname = "mabase";     // mysql database
    $conn=mysql_connect($dbhost,$dbuser,$dbpass) or die(erreurServeurMySQL());
    mysql_select_db($dbname,$conn) or die('Erreur de selection '.mysql_error()); // problème sur la bdd
     
    $flux = simplexml_load_file('http://localhost/test/source.xml'); // Source du flux.xml
     
    foreach ($flux->product as $item) {
 
	$titre = $item->titre;
	$price = $item->price;
	$url = $item->url;
	$date_debut_sortie = $item->date_debut;
	$date_fin_sortie = $item->date_fin;
	$street = $item->street;
	
	// On fait un explode afin de récupérer ce qu'il nous interesse
	$postcode  = $item->extra2;
	$pieces = explode(" ", $postcode);
	
	echo $pieces[0].'<br><br>'; // CODEPOSTAL
	echo $pieces[1].'<br><br>'; // Séparation
	echo $pieces[2].'<br><br>'; // VILLE
	
	// On attribut le département en fonction des 2 premiers chiffre du code postal
	$departement = substr($postcode, 0, 2);
	
	// Attribution de la valeur id 99
	$id_simply_user = '99';
   
   
	$sql = "INSERT INTO `matable` (id_simply_user,titre,price,url,date_debut,date_fin,street,postcode,city,id_departements) VALUES ('$id_simply_user','$titre','$price','$url','$date_debut','$date_fin','$street','$pieces[0]','$pieces[2]','$departement')";
	$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
	echo 'données inserées en base';
  
 
}
 
?>
Merci à vous :wink:

Re: Intégrer un flux XML dans une bdd

par tof73 » 14 juin 2015, 01:25

Intégrer un flux XML dans une bdd

par blinz » 14 juin 2015, 00:59

Bonjour,
Je recupere un flux XML que j'intègre dans ma base de donnée.
Aucun problème particulier je recupère ce que je souhaite cependant, j'aimerais récupérer uniquement certaine chose comme la ville qui dans la même balise que le code postal.

Exemple: ( extra 2 dans mon xml, permet de nous transmettre code postal, ville et pays.
Je souhaite récupérer que le code postal dans une variable, dans une autre variable que le ville et ainsi de suite... comment procéder svp.
<extra2>31200 | TOULOUSE | FR</extra2>
Mon code au complet :
<?php
//connection a la base de donnee
$dbhost = "localhost";
$dbuser = "root";      // mysql user
$dbpass = "";       // mysql password
$dbname = "test";     // 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/csv/file.xml');
 
foreach ($flux->product as $item) {
 
   $titre = $item->titre;
   $price = $item->price;
   $url_fnac = $item->url;
   $date_debut_sortie = $item->date_debut;
   $date_fin_sortie = $item->date_fin;
  
   
 
   $sql = "INSERT INTO `matable` (titre,price,url,date_debut_sortie,date_fin_sortie) VALUES ('$titre','$price','$url','$date_debut_sortie','$date_fin')";
   $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
   echo 'données inserées en base';
 
}

?>
Merci à vous ;)