Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
887 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Lecture Flux XML, Doublon et ressources SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lecture Flux XML, Doublon et ressources SQL

n°2254211
tomware
Moteur à eau
Posté le 26-03-2015 à 01:29:17  profilanswer
 

Bonjour, :hello:  
 
J'aimerais publier sur mon site un flux xml existant en récupérant uniquement les titres d'articles via php.
 
Le flux xml contient déjà 1000 entrées dont chacune possède un ID.
 
Je lance une cron tous les jours pour récupérer les nouveaux titres d'articles. Donc tous les jours il va passer sur les 1000 entrées pour en récupérer  seulement 1 ou 2 nouvelle par jour.
 
Et c'est là où je me pose une question cruciale. Quel est le plus économique en ressource ?
 
1) Une boucle php dans le parser qui va faire un insert SQL a chaque ligne. Si l'ID existe deja, n’insère rien.
 
2) J'effectue en premier une requette SQL qui va lister tous les ID déjà rentrés dans la base. En mettant les résultat dans un tableau avec un séparateur {8,9,10,11,12,13,etc...}  
Et dans ma boucle du parser, je vais inserer uniquement les ID qui ne sont pas dans ce tableau. Sans faire de check mysql a chaque fois.
 
 
 
Voici mon code juste pour que vous voyez a partir de quoi je pars (je ne vous demande pas de coder a ma place hein  :lol: )

Code :
  1. <?php
  2. $fichier = "http://lesiteaparser.com/xml.php";
  3. $xml = simplexml_load_file($fichier);
  4. foreach($xml as $titre){
  5. echo $titre->titre.'<br>'; // On va pas se prendre la tête avec l'insertion, je vous montre juste ma boucle
  6. }
  7. ?>


 
 
Alors selon-vous, solution 1 ou 2 ? ou autre ?
 
Merci :jap:


Message édité par tomware le 26-03-2015 à 02:01:48
mood
Publicité
Posté le 26-03-2015 à 01:29:17  profilanswer
 

n°2254238
rufo
Pas me confondre avec Lycos!
Posté le 26-03-2015 à 10:35:19  profilanswer
 

La 2ème solution me paraît pas mal. Ca limite le nb d'accès à la BD; par contre, elle sera sans doute plus consommatrice de mémoire vue que tu vas stocker dans un tableau tous les ID déjà présents.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2254252
tomware
Moteur à eau
Posté le 26-03-2015 à 11:40:12  profilanswer
 

Merci rufo  :jap:  
 
A ton avis il faut combien d'ID pour que ca commence a saturer ?
 
je suis sur un mutualisé et mon hébergeur me dit que j'ai 1GO de mémoire dédié.


Message édité par tomware le 26-03-2015 à 11:59:49
n°2254268
rufo
Pas me confondre avec Lycos!
Posté le 26-03-2015 à 14:05:03  profilanswer
 

Si tu fais un Array avec que des entiers dedans, 2000-3000 ID, ça devrait passer sans pb.
 
Après, t'es sûr que t'as pas moyen d'identifier plus spécifiquement les 2-3 articles dans le XML qui manquent dans ta BD ? Genre, y'aurait pas une date/heure qui te permettrait de trouver les titres non traités (ex : si tu fais un traitement tous les jours à un heure donnée, par rapport à la date/heure courante, tu sais ceux qui n'ont pas encore été traités) ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2254284
tomware
Moteur à eau
Posté le 26-03-2015 à 15:31:51  profilanswer
 

excellent idée oui c'est faisable :)
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Lecture Flux XML, Doublon et ressources SQL

 

Sujets relatifs
[SQL/SQL Server] Date maximale pour calcul suivant une cat/agent[Réglé] [SQL] [ORACLE] Tri / regroupement "cyclique" ?
[SQL] Aide requête avec enregistrement facultatifRequête SQL Update dans PHP
[Access/SQL] Comparaison de tables[Réglé] [SQL] Update après un select
Suppression d'un fichier en lecture seule[SQL] Sélectionner tous les champs dans une requete sans les citer
[réglé] [SQL] Jointure et variable du meme nom[AJAX] Load d'un fichier XML en ajax
Plus de sujets relatifs à : Lecture Flux XML, Doublon et ressources SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR