probleme boucle foreach simplexml
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:
Code:
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> |
Voici le code php:
Code:
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/>";
}
?> |
Résultat ça créé 2 table comme celles là:
maTable
id
nom
description
maTable2
id
nom
description
au lieu de :
maTable
id
nom
description
maTable2
idnum2
Merci :-)