salut

pour alleger mon travaille je map la structure de ma base dans un fichier xml
(qui devrai etre compatible sdo)
mais dans certain cas ma methode fonctionne et pas dans d'autre
petit example( )
le fichier 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
		<table>
			<name>USERS</name>
			<colums>id_users</colums>
			<colums>firstname</colums>
			<colums>lastname</colums>
			<colums>login</colums>
			<colums>password</colums>
			<colums>email</colums>
			<colums>comment</colums>
			<colums>photo</colums>
			<pk>id_users</pk>
		</table>
		<table>
			<name>GROUPS</name>
			<colums>id_groups</colums>
			<colums>name</colums>
			<pk>id_groups</pk>
		</table>
		<table>
			<name>PERMISSION</name>
			<colums>id_permission</colums>
			<colums>permited</colums>
			<colums>id_groups_users</colums>
			<colums>id_module_actions</colums>
			<pk>id_permission</pk>
			<fk>
				<from>MODULE_ACTIONS</from>
				<to>id_module_actions</to>
			</fk>
			<fk>
				<from>GROUPS_USERS</from>
				<to>id_groups_users</to>
			</fk>
		</table>
		<table>
			<name>GROUPS_USERS</name>
			<colums>id_groups_users</colums>	
			<colums>id_groups</colums>	
			<colums>id_users</colums>
			<pk>id_groups_users</pk>
			<fk>
				<from>GROUPS</from>
				<to>id_groups</to>
			</fk>
			<fk>
				<from>USERS</from>
				<to>id_users</to>
			</fk>
		</table>
		<table>
			<name>MODULE_ACTIONS</name>
			<colums>id_module_actions</colums>	
			<colums>id_module</colums>	
			<colums>id_actions</colums>
			<pk>id_module_action</pk>
			<fk>
				<from>MODULE</from>
				<to>id_module</to>
			</fk>
			<fk>
				<from>ACTIONS</from>
				<to>id_actions</to>
			</fk>
		</table>
		<table>
			<name>MODULE</name>
			<colums>id_module</colums>
			<colums>name</colums>
			<pk>id_module</pk>
		</table>
		<table>
			<name>ACTIONS</name>
			<colums>id_actions</colums>
			<colums>name</colums>
			<pk>id_actions</pk>
		</table>
associer a la methode suivante
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
	protected function getTable($table=null,&$array=null)
	{
		if(isset($this->_base[$this->_table]['fk']))
		{
			if(isset($this->_base[$this->_table]['fk']) && $table===null)
			{
				$table=$this->_base[$this->_table];
				$array[0]=$this->_table;
			}else
			$table=$this->_base[$table];
			if(isset($table['fk'])){
				foreach ($table['fk'] as $fk)
				{
					$nb=count($array);
					$array[$nb++]=(string)$fk->from;
					$this->getTable((string)$fk->from,$array);
				}
			}
			return $array;
		}
		else 
		return array($this->_base[$this->_table]['name']);
	}
me retourne les nom de toute les tables avec PERMISSION en table d'entré (j'ai une autre methode pour les jointures)

mais voila cette methode fonctionne que tres partiellement avec
une autre partie de mon fichier 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
39
40
41
<table>
			<name>ARTICLE</name>
			<colums>id_article</colums>
			<colums>contenu</colums>
			<colums>title</colums>
			<colums>id_image</colums>
			<colums>id_users</colums>
			<colums>id_xslt</colums>
			<colums>date</colums>
			<colums>keyword</colums>
			<pk>id_article</pk>
			<fk>
				<from>IMAGE</from>
				<to>id_image</to>
			</fk>
			<fk>
				<from>XSLT</from>
				<to>id_xslt</to>
			</fk>
			<fk>
				<from>USERS</from>
				<to>id_users</to>
			</fk>
		</table>
		<table>
			<name>IMAGE</name>
			<colums>id_image</colums>
			<colums>name</colums>
			<colums>description</colums>
			<pk>id_image</pk>
			<fk>
				<from>THEME</from>
				<to>id_theme</to>
			</fk>
		</table>
		<table>
			<name>THEME</name>
			<colums>id_theme</colums>
			<colums>name</colums>
			<pk>id_theme</pk>
		</table>
ici je n'arrive pas a recuperer la table THEME

c'est le foreach qui merde, mais j'ai pas trouver le bon paliatif
merci à tous ceux qui ont lu le post jusqu'au bout

ps: petite precsion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
count($this->_base['ARTICLE']['fk'])
donne 3
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
count($this->_base['IMAGE']['fk'])
donne 2