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 : 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>
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
<?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 :-)