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
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
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>
me retourne les nom de toute les tables avec PERMISSION en table d'entré (j'ai une autre methode pour les jointures)
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']); }
mais voila cette methode fonctionne que tres partiellement avec
une autre partie de mon fichier xml
ici je n'arrive pas a recuperer la table THEME
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>![]()
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
donne 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part count($this->_base['ARTICLE']['fk'])
et
donne 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part count($this->_base['IMAGE']['fk'])![]()
Partager