Bonjour à tous,
Déjà, n'étant pas un habitué du forum, j'espère ne pas me tromper de rubrique. Pour vous donner une idée de mon niveau, je maitrise HTML / CSS, je suis novice en PhP / MySqL et XML m'est complètement inconnu.
Mon objectif
Commençons par le commencement, je vous explique ce que je souhaite faire.
Aujourd'hui, un de mes prestataires génère un flux XML (exemple de flux généré plus bas), afin d'alimenter mon site en petites annonces. Ce flux est mis à jour chaque soir à heure fixe.
Dans mon idée, mon travail passe par deux étapes :
- Alimenter automatiquement la base SqL à partir du fichier XML.
- Générer les pages à partir de la base SqL (ce qui n'est pas l'objet de ce post, un problème à la fois).
Où j'en suis
Travaillant sur un autre projet en parallèle, je n'ai pas beaucoup avancé.
Reprenons : le fichier XML que l'on me donne est sous cette forme :
Pour récupérer ces données dans une base SqL, je me suis axé sur des éléments trouvés en fouinant sur la toile. A priori - si j'ai bien saisi - il y a plusieurs méthodes (DOM, simplexml, ...). Le simplexml à l'air de bien porter son nom : voilà où j'en suis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9<?xml version="1.0" encoding="ISO-8859-1" ?> <adapt_xml> <annonce> <reference>00000</reference> <date>20080102</date> <titre_fr>Titre de l'annonce</titre_fr> </annonce> </adapt_xml>
Ca marche pas exactement tip top (parfois, les données ne s'upoload pas, mais en me creusant la tête, je devrais comprendre d'où vient le problème. D'ailleurs, je m'interroge également, je dois plutôt utiliser INSERT ou UPDATE ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <? $data = simplexml_load_file("url/fichier.xml"); $ref = $data->annonce[0]->reference; $dat = $data->annonce[0]->date; $tit = $data->annonce[0]->titre_fr; $sql= "INSERT INTO 'annonces' ('REFERENCE', 'DATE', 'TITRE_FR') VALUES ($ref , $dat, $tit) "; mysql_query ($sql); ?>
Là où je bloque
1 - Que le script fonctionne automatiquement : là, je dois visiter une page pour que le script s'active. J'aimerai qu'il s'active automatiquement, et ne gène pas le chargement des pages. Si je le laisse en l'état, il va aller aspirer le flux à chaque requête de visiteur, et le serveur risque de souffrir (arrêtez moi si je dis une ânerie).
=> Que rajouter pour automatiser le script.
=> Où placer cette "page" sur mon site (à la racine /WWW ?).
2 - Parser convenablement le flux XML. Je pense que je vais devoir faire une boucle, mais je ne vois pas exactement quelle syntaxe utiliser. En effet, en l'état, le fichier XML de test ne comporte qu'une annonce. Mais à l'avenir, il va en contenir plusieurs. Du coup, il me faut un script qui rajoute toutes les annonces, qu'il y en ai 1 ou 25.
=> Quelle serait la syntaxe pour rendre le script souple en fonction du nombre d'annonce.
Bon, vous l'aurez compris, je nage et je bricole. Pour autant, je n'attends pas spécialement le script tout fait : des pistes ou des confirmations que je suis sur la bonne route me seront déjà forts utiles.
Merci d'avance
Partager