PHP : gestion fichiers xml

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 : PHP : gestion fichiers xml

Re: PHP : gestion fichiers xml

par moogli » 23 févr. 2013, 01:01

salut,

commence par définir l'algorithme qui va ce que tu veux faire.

1/ ouvrir le fichier xml
2/ pour chaque élément table faire
2.1/pour chaque élément column faire
2.1.1/ajouter le "name" dans un tableau
2.1.2/ ajout la valeur dans un tableau (même index que 2.1.1)
2.1.3/ fin pour chaque (2.1)
2.2 / insérer dans la nouveau table les infos de la boucle précédente
2.3 / Fin pour chaque

tu as toutes les infos qui sont indiquées dans les messages précédents.

les tests c'est bien mais ce n'est pas une bonne idée ce type de dump sur une structure comportant beaucoup de données (la taille du fichier sera très lourde, le traitement sera plus long).
Il existe des utilitaire natif (comme mysqldump) ou simplement un fichier sql. Si les tables sont identiques bien sur.

Essai de faire quelque chose avec l'algo, c'est relativement simple. si tu as des soucis montre nous le code avec les éventuels messages d'erreurs ou les dysfonctionnements que tu constate.

@+

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 14:12

pour l'linstant j'ai ça :
<?php
$xml = simplexml_load_file('ancienne.xml');

foreach ($xml ->ancienne as $value) {
$nouv_id= $value->ancienne;
$nouv_name = $value->ancienne;
}
?>
une fois que je l'ai tu veux que je fasse un insert dans ma nouvelle table c'est ça ?

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 14:06

Je ne saisis pas exactement ce que tu veux faire.

- Par phpmyadmin, ça ne va pas.
- Parser le xml en php et inclure les valeus dans ta base, ça ne va pas non plus.
- Sqldump, non plus.

Tu veux lire et parser le xml et refaire un xml derriere pour l'importer dans ta base.

Je vois pas pourquoi te rajouter un étape alors que inclure dans ta base, c'est juste une ligne en plus.

Bizarre... M'enfin

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 14:01

alors dans ce cas la ce n'est pas la peine de faire un script php ..

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 13:42

bah non!?

tu recupères tes variables et fait un insert into vers ta nouvelle base.

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 13:32

ok merci , et une fois que mon code je l'ai je met l'extension en .xml et j'importe directement c'est bon ?

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 13:19

regarde ce topic, c'est pareil. exactement la meme chose.

php-debutant/xml-classer-dans-ordre-t267225.html
Regarde cette discussion tout est noté pour le parsing du xml avec exemples.

Tu comprendra comment utilisé simple_xml et tu pourras récupérer ce que tu veux dans ton xml.

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 12:57

je suis complètement perdu .... :oops: :oops:
je ne veux pas faire de requête dans phpMyAdmin je veux utiliser les XML qui lit mon ancien fichier et créer un nouveau fichier xml que j'importe à ma base

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 12:53

Mauvaise requete

la bonne
INSERT INTO table_nouvelle (id) SELECT id FROM table_ancienne
Attention dans tes requetes furures, n'oublie pas de correler tes infos. Pense au WHERE

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 12:19

j'ai entré cette commande dans PhpMyAdmin et ça ne marche pas ..
UPDATE nouvelle SET nouvelle.nouv_id = ancienne.id 
pourtant ma syntaxe est bonne fin du moins je pense #-o

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 12:07

pour moi un attribut c'est id par exemple .
ok je vais essayer ta méthode voir si par :

Code : Tout sélectionner

<database name="testXml"> <!-- Table ancienne --> <table name="ancienne"> <column name="id">1</column> <column name="nom">bob</column> </table>
ce copie bien dans la nouvelle base .
mais pour mon fichier qui est bcp plus gros et où il y a beaucoup plus d'attributs comment je peux faire alors pour transférer ? je fait pareil ?

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 12:01

Tu as des attribut dans ta bdd ?? Dans ton phpmyadmin, tu n'as que des tables et des champs qui ont des valeurs.

Donc avec la commande que je t'ai donné, tu peux copier les valeurs des champs d'une table vers une autre.

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 11:55

Mes deux tables sont déjà crée , je veux juste importer que les données pas faire une table . mais la j'ai pas bcp d'attributs donc pour ta methodes j'y ai déjà pensé c'est pas compliqué

Re: PHP : gestion fichiers xml

par damien_55 » 22 févr. 2013, 11:50

Bon, ok.

Sur phpmyadmin, dans la meme base, tu as apparement tes 2 tables (l'ancienne et la nouvelle). Si tu n'as que l'ancienne, tu créée la nouvelle.

ton ancienne table contient les champs.

Tu peux copier tes champs d'une table à l'autre avec la commande que je t'ai donné hier
UPDATE nouvelle_table SET nlle_table.id=ancienne_table.id 
pour l'id.

une fois que tu as défini la structure de ta nouvelle table tu copies les donnée de ton champ ancienne table dans la nouvelle.

Si tu veux créer un nouveau jeu avec 2 champs ou plus de ton ancienne base vers la nouvelle, tu peux fusionner tes champs avec la commande CONCAT
par exemple
update zeTable set grosChamp=CONCAT(champ1, ' ', champ2);

Re: PHP : gestion fichiers xml

par juniordev » 22 févr. 2013, 11:32

bjr , on est deux à être perdue ..
je suis sur phpMyAdmin , mes tables sont deçu et j'ai extrait de phpMyAdmin mes tables dans un fichier xml
afin de transférer les données de l'ancienne table vers la nouvelle qui n'a pas les mêmes attributs