bonjour,
je dois à partir d'un fichier xml récuperer les informations passées entre les balises et les mettre dans une requete sql.
Cependant lorsque je fais mes boucles imbriquées la boucle qui est à l'intérieure de la premiere n'avance pas dans le fichier xml (ce sont toujours les premiers resultat qui sont renvoyés).
voici le code source xml:
Voici le code php:
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?xml version="1.0" encoding="iso-8859-1"?> <creatable> <table> <nomtable>maTable</nomtable> <field> <nomchamp>id</nomchamp> <type>int</type> <primary>1</primary> <null>1</null> <auto_increment>1</auto_increment> </field> <field> <nomchamp>nom</nomchamp> <type>char(20)</type> <primary>0</primary> <null>0</null> <auto_increment>0</auto_increment> </field> <field> <nomchamp>description</nomchamp> <type>varchar(200)</type> <primary>0</primary> <null>1</null> <auto_increment>0</auto_increment> </field> </table> <table> <nomtable>maTable2</nomtable> <field> <nomchamp>idnum2</nomchamp> <type>int</type> <primary>1</primary> <null>0</null> <auto_increment>1</auto_increment> </field> </table> </creatable>
Résultat ça créé 2 table comme celles là:
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
17
18
19
20 <?php $xml = simplexml_load_file('./xml/ok.xml'); $tables = ($xml->table); $fields = ($xml->table->field); foreach ($tables as $table) { $count=0; echo "create table " .$table->nomtable. " (<br/>"; foreach ($fields as $field) { if ($count!=0) {echo ",<br/>";} echo $field->nomchamp; echo " ".$field->type; if ($field->primary==1) {echo " PRIMARY KEY";} if ($field->null==0) {echo " NOT NULL";} if ($field->auto_increment==1) {echo " auto_increment";} $count=$count+1; } echo ");<br/><br/>"; } ?>
maTable
id
nom
description
maTable2
id
nom
description
au lieu de :
maTable
id
nom
description
maTable2
idnum2
Merci :-)
Partager