IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XSL] Récupérer requète SQL a partir d'un fichier Xml et les traiter par un interface


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [XSL] Récupérer requète SQL a partir d'un fichier Xml et les traiter par un interface
    Bonjour,

    je récupère actuellement les données en Xml d'une grosse base de données. Le but est de comparer et de mettre à jour les données par rapport à celle que l'on a déjà. Grace à un fichier Xsl, je transforme les données Xml en requètes SQL. Qd j'ouvre le fichier Xml ds un web browser, il me sort les requètes, je les copie colle ds ma base pour pouvoir les utiliser. Le problème c'est que j'aimerai rendre tout transparent, que l'utilisateur n'est pas à copier coller les requètes. Je souhaite utiliser une interface en java (ou php). J'essaye de parser mon fichier mais je n'y arrive pas ( sous php4 avec domxml_open_file()...). Je ne sais pas si c'est la méthode pour récupérer mes commandes SQL ds une variable par exemple et pouvoir l'utiliser après.

    Merci d'avance pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    L'idée serait d'effectuer la transformation du fichier xml par le fichier xsl à l'aide de php et donc récupérer dans php le résultat de la transformation (cad les requètes).

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    oui c'est exactement ça !!
    J'arrive finalement à mettre mes requêtes dans une variable, grâce à çà :
    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
    <?php
    $xh = xslt_create();
    $file=fopen("book.xml","r");
    $xml=fread($file,16384);
    fclose($file);
    $file=fopen("books.xsl","r");
    $xsl=fread($file,16384);
    fclose($file);
    $arguments = array(
      '/_xml' => $xml,
      '/_xsl' => $xsl
      );
    $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
    xslt_free($xh);
    //print "$result";
                            ?>
    Le problème maintenant c'est qu'il me dit exécution de la requête impossible!! Alors que c'est simplement des insert into!

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par jmumu
    oui c'est exactement cà!!
    J'arrive finalement à mettre mes requètes ds une variable, gràce à çà :
    <?php
    $xh = xslt_create();
    $file=fopen("book.xml","r");
    $xml=fread($file,16384);
    fclose($file);
    $file=fopen("books.xsl","r");
    $xsl=fread($file,16384);
    fclose($file);
    $arguments = array(
    '/_xml' => $xml,
    '/_xsl' => $xsl
    );
    $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
    xslt_free($xh);
    //print "$result";
    ?>

    Le problème maintenant c qu'il me dit exécution de la requète impossible!! Alors que c'est simplement des insert into!
    C'est quoi l'erreur affichée ?

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    y a ça que j'ai rajouté en dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $connexion=mysql_connect("localhost","root","")
        or die("connexion impossible");
     
      $base="request";
      $db=mysql_select_db($base,$connexion)
        or die ("la BDD ne peut pas être sélectionné");
    $rq = "'$result'";
    $result1 = mysql_query($rq)
        or die ("Execution de la requète impossible");
                            ?>
    Le truc c'est que php ne permet pas d'avoir plusieurs requêtes à la fois, et d'avoir des ";" dans la requête. Je vais donc utiliser la fonction split() pour découper ma variable.
    Ce que je me demande c'est que je vais avoir 30 000 insert into dans mon vrai problème, je sais pas si une variable peut prendre autant de caractères?
    Je ne sais pas non plus si les requêtes exécutées une à une ne vont pas prendre trop de temps....

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par jmumu
    oui c'est exactement cà!!
    J'arrive finalement à mettre mes requètes ds une variable, gràce à çà :
    <?php
    $xh = xslt_create();
    $file=fopen("book.xml","r");
    $xml=fread($file,16384);
    fclose($file);
    $file=fopen("books.xsl","r");
    $xsl=fread($file,16384);
    fclose($file);
    $arguments = array(
    '/_xml' => $xml,
    '/_xsl' => $xsl
    );
    $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
    xslt_free($xh);
    //print "$result";
    ?>

    Le problème maintenant c qu'il me dit exécution de la requète impossible!! Alors que c'est simplement des insert into!
    Bonjour, y a-t-il quelque chose de particulier à installer pour que ce script fonctionne ?
    J'obtiens ceci :
    Fatal error: Call to undefined function xslt_create() in C:\Program Files\EasyPHP 2.0b1\www\essai.php on line 2
    Ou encore mieux y aurait-il moyen de faire la même chose en java ?
    Merci

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 79
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Et bien si j'étais dans ton cas, j'essayerai de lancer X (un nombre choisi) de requête encapsulé par une transaction (cf http://dev.mysql.com/doc/refman/5.0/fr/commit.html
    )
    Haa oui faut que ta base de données soit compatible INNODB ..sinon ce que je dit est caduque.

    ta chaine devra ressembler a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    START TRANSACTION;
    //tes INSERT ICI;
    //tes INSERT ICI;
    //tes INSERT ICI;
    //tes INSERT ICI;
    COMMIT;
    dans une boucle autant de fois, jusqu'à arriver a la fin de tout t'es INSERT.
    Ce qui permet d'envoyer un paquet de requête d'une seule traite, tout en garantissant que celles ci soient bien exécutées.

    Et non pas, envoyer une a une tes requêtes.

    j'espère t'avoir mit sur la voie

Discussions similaires

  1. Exécuter une requète SQL a partir des données XBase
    Par jcachico dans le forum kettle/PDI
    Réponses: 0
    Dernier message: 06/01/2012, 10h36
  2. Réponses: 1
    Dernier message: 06/08/2007, 10h39
  3. Requête SQL Direct à partir de VBA
    Par petitmic dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 25/05/2007, 17h35
  4. [SQL] Comment récupérer des champs a partir d'un fichier de sauvegarde?
    Par baguira dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2007, 18h23
  5. Requête sql a partir de Visual Basic de Excel
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/08/2006, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo