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

Requêtes MySQL Discussion :

Insertion depuis XML


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut Insertion depuis XML
    bonjour tout le monde,
    J'ai voulu insérrer des enregistrements dans ma table inoodb, depuis un fichier XML. A la fin de l'éxécution, j'ai pas tous les enregistrements.En faite, le programme inserre un enregistrement, puis il parcoure un nombre d'enregistrements (pas toujour le même) dans le fichier XML,et puis il inserre un autre. Quelqun à une réponce à ce problème? merci d'avance.

    le code que j'ai mis:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $racine = simplexml_load_file('monfichier.xml') ;
    foreach ($racine->produit as $produit){
    $id=$produit->id;
    $titre = $produit->titre;
    $img=$produit->img;
    $lien=$produit->lien;
    $modele=$produit->type;
    $desc=$produit->description;
    $requete1 = "INSERT INTO table VALUES ('','$titre','$img','$img','$lien','$modele','$desc','$desc')" ;
    mysql_query($requete1);
    }
    ?>

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Tu es sûr que la structure de ton fichier xml est correcte ?

    Tu as compter le nombre de tour que fait ta boucle, pour comparer avec ton fichier xml.

    Mettre un or die(mysql_error()) devrait sans doute également te donner un indice

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    et ben oui, le nombre de tours que fait la boucle est correct (= nombre d'enregistrements dans le fichier XML).
    j'ai fait un test avec :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $d=mysql_insert_id();
    echo "$d<br>";

    et ça me retourne par exemple: 1,1,1,2,2
    ça ve dire que la boucle fait 5 tours (nombre d'enrgistrements dans XML), mais je n'ai que les enregistrements un et deux dans ma table.
    j'éspère que c'est claire et que vous pouvez m'aider.
    Merci d'avance.

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    D'après ce que tu dis, du moins je pense, tes autres enregistrements ne s'effectuent pas(ou sont écrasés) car ils ont les mêmes clefs primaires.

    Je vois pas trop pourquoi.

    C'est normal les 2 champs avec les même valeurs ?

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    J'ai réussit à cerner le probleme, mais je ne sait pas encore comment le corriger.
    En faite, lors de l'insertion, c'est le caractère (') qui pose les problèmes puiusque la requète est de la forme:
    <?php
    $requete1 = "INSERT INTO table VALUES ('','$titre','$img','$img','$lien','$modele','$desc','$desc')" ;
    ?>
    Exemple:
    si $titre=Pour tout l'Or des Incas
    lors de l'éxécution de la requète ça va être 'Pour tout l'Or des Incas' donc le titre se divise en deux:
    'pour tout l'
    'or des Incas'
    erreur
    Mais comment la résoudre??

  6. #6
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    En échappant les apostrophes avec mysql_real_escape_string()

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    merci beaucoup.
    c'est fait et ça marche
    c'est trés simple quand même, et moi je cherchait trop loin
    Merci encore.

  8. #8
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Resalut,
    je bloque une autre foie, et maintenant c'est au niveau des jeux de caractères.
    Mon fichier XML est en <?xml version="1.0" encoding="iso-8859-1" ?>.
    J'ai rien changé au niveau de ma base de données par défaut.
    Aprés l'insertion des données (depuis mon fichier XML) dans ma base, je remarque que ces données ont étés insérrées je croie en UTF-8 (d'aprés se que j'ai lu dans les forum), c'est à dire: 'extérieure' au lieu de 'extèrieure'.
    Mais j'arrive pas encore à résoudre ce problème.
    Quelqun peut m'aider? et merci d'avance.

  9. #9
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Salut,

    Utilise utf8_decode() lors de la lecture de ton fichier xml.

  10. #10
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    merci beacoup;
    ça marche à merveille maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/12/2005, 15h30
  2. Insertion d'XML dans de l'HTML
    Par SDuh dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 02/09/2005, 21h04
  3. Insertion d'XML dans de l'HTML (autre cas)
    Par a028762 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 28/08/2005, 10h13
  4. INSERT depuis formulaire
    Par bozolozo dans le forum Access
    Réponses: 5
    Dernier message: 02/12/2004, 14h50
  5. generer xsl depuis xml avec balises inconues ?
    Par cedre dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 24/06/2003, 09h00

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