Bonjour les experts, desole de vous ennuyer avec un truc qui peut pourtant paraitre simple mais je bloque dessus.
j'ai un resultat qui se cree dans un tableau a doubles entrees pour des contraintes techniques.
Un print_r de ce tableau donne ca :
je voudrais faire une boucle qui parcours ce tableau en fesant des insert dans une table de ma base oracle sans prendre les numero bien entendu sinon j'aurais des enregistrements en doublons.
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
77
78
79
80
81
82
83
84
85
86
87 Array ( [0] => Array ( [NAME] => UNDOTBS1 [0] => UNDOTBS1 [TOTAL] => 450 [1] => 450 [FREE] => 432 [2] => 432 [USED] => 18 [3] => 18 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF ) [1] => Array ( [NAME] => SYSAUX [0] => SYSAUX [TOTAL] => 310 [1] => 310 [FREE] => 40 [2] => 40 [USED] => 270 [3] => 270 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF ) [2] => Array ( [NAME] => CP_DATA [0] => CP_DATA [TOTAL] => 200 [1] => 200 [FREE] => 199 [2] => 199 [USED] => 3 [3] => 3 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CP_DATA.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CP_DATA.DBF ) [3] => Array ( [NAME] => USERS [0] => USERS [TOTAL] => 26 [1] => 26 [FREE] => 25 [2] => 25 [USED] => 1 [3] => 1 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF ) [4] => Array ( [NAME] => SYSTEM [0] => SYSTEM [TOTAL] => 550 [1] => 550 [FREE] => 14 [2] => 14 [USED] => 536 [3] => 536 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF ) [5] => Array ( [NAME] => EXAMPLE [0] => EXAMPLE [TOTAL] => 100 [1] => 100 [FREE] => 23 [2] => 23 [USED] => 77 [3] => 77 [FILE_NAME] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF [4] => D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF ) )
Par exemple un foreach qui fait insert into toto.machin (les champs) name,total,free,used,file_name
Le probleme c'est que je me embrouille avec ces tableaux bizars.
Si qqun a une solution a mon probleme je suis preneur car je bloque sur ca et je ne peux pas avancer :'(.
Edit: j'ai trouve ceci qui me donne un affichage pas adapte bien entendu,
voici le code:
et voici le resultat sous oracle ( j ai pas enleve les elements html )
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 function afficher_tableau($tableau) { // on fait une boucle qui lit les éléments du tableau foreach ($tableau as $cle=>$valeur) { // si l'un des éléments est lui même un tableau // alors on applique la fonction à ce tableau if(is_array($valeur)) { // on affiche le nom de la clé et // le début d'une liste pour // décaler le contenu vers la droite echo $cle.' : <ul>'; // ici se réalise la récursivité // c'est à dire qu'on applique la fonction // à l'élément en cours car c'est lui aussi un tableau afficher_tableau($valeur); } // si ce n'est pas un tableau // alors on affiche le contenu de l'élément else { echo $cle.' = '.$valeur.' <br>'; } } } afficher_tableau($OraResults);
c'est deja mieux mais comment exploiter ces elements avec un insert into propre qui ne prends pas les doublons ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 0NAME = UNDOTBS1 <br>0 = UNDOTBS1 <br>TOTAL = 450 <br>1 = 450 <br>FREE = 432 <br>2 = 432 <br>USED = 18 <br>3 = 18 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADAT A\ORCL\UNDOTBS01.DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF <br>1NAME = SYSAUX <br>0 = SYSAUX <br>TOTAL = 310 <br>1 = 310 <br>FREE = 40 <br> 2 = 40 <br>USED = 270 <br>3 = 270 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF < br>2NAME = CP_DATA <br>0 = CP_DATA <br>TOTAL = 200 <br>1 = 200 <br>FREE = 199 <br>2 = 199 <br>USED = 3 <br>3 = 3 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADATA \ORCL\CP_DATA.DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CP_DATA.DBF <br>3NAME = USERS <br>0 = USERS <br>TOTAL = 26 <br>1 = 26 <br>FREE = 25 <br>2 = 25 <b r>USED = 1 <br>3 = 1 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF <br>4NAME = SYST EM <br>0 = SYSTEM <br>TOTAL = 550 <br>1 = 550 <br>FREE = 14 <br>2 = 14 <br>USED = 536 <br>3 = 536 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01. DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF <br>5NAME = EXAMPLE <br>0 = EXAMPLE <br>TOTAL = 100 <br>1 = 100 <br>FREE = 23 <br>2 = 23 <br>USED = 77 <br>3 = 77 <br>FILE_NAME = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF <br>4 = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF <br>22/03/2010 -
Partager