Bonjour
J'ai un problème sérieux avec ma fonction php/sql.
J'ai une table nommé tablature qui contient les tables et les
champs de chaque table de la base de données.
Je voudrai exécuter une fonction php pour sélectionner
toutes les tables et les champs dans tablature et mettre les
données de chaque table dans un tableau unique.
J'y arrive si tablature contient qu'une ligne donc une table.
Mais pour plusieurs tables je n'arrive pas.
table : tablature
Je possède une code qui me le fait, mais hélas que pour une seule ligne dans tablature. Donc une seule table.
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 CREATE TABLE `tablature` ( `n_ic` int(11) NOT NULL, `n_table` int(11) NOT NULL auto_increment, `parent` int(11) NOT NULL, `cle` varchar(50) NOT NULL, `of` int(1) NOT NULL, `tbl` varchar(250) NOT NULL, `cha` text NOT NULL, `debut` int(11) NOT NULL, `fin` int(11) NOT NULL, `cle_pos` int(11) NOT NULL, `adr` varchar(250) NOT NULL, PRIMARY KEY (`n_table`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Contenu de la table `tablature` -- INSERT INTO `tablature` (`n_ic`, `n_table`, `parent`, `cle`, `of`, `tbl`, `cha`, `debut`, `fin`, `cle_pos`, `adr`) VALUES (0, 1, 0, 'n_la', 2, 'langue', 'n_la,n_pa,la_adm,a,b,c,d,e,f,g,h,i,j,k,l', 17, 31, 16, 'sql.php'), (0, 2, 0, 'n_nav', 2, 'nav', 'n_nav,of,nav', 32, 34, 32, 'sql.php');
Mon problème est que tablature contient plusieurs lignes.
sql.php
J 'obtiens les données de la table b
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 $aaa=mysql_query("SELECT n_ic,n_table,parent,cle,of,tbl,cha,debut,fin,cle_pos,adr FROM tablature"); $nbr_a=mysql_num_rows($aaa); $ara=array();$i=0;$keys_a=range(0,10); while($rsa=mysql_fetch_row($aaa)){$ara[$i++]=array_combine($keys_a,$rsa);} if(($nbr_a=="")||($nbr_a==0)){echo"tablature est vide";} elseif($nbr_a>=1){ for($i=0;$i<=$nbr_a-1;$i++){ if($ara[$i][1]!=""){ $aac=mysql_query("SELECT ".$ara[$i][6]." FROM ".$ara[$i][5].""); $z=0; $arc=array(); $keys_c=range($ara[$i][7],$ara[$i][8]); while($rsc=mysql_fetch_row($aac)){$arc[$z++]=array_combine($keys_c,$rsc);} } } } else{echo"grosse erreur";} print_r($arc);
Mon but c'est d'obtenir un tableau comme ci dessous pour x table dans tablature
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //-----------table b Array ( [0] =>[0] => Array ( [32] => 1 [33] => 2 [34] => ie ) [1] => Array ( [32] => 2 [33] => 2 [34] => fi ) [2] => Array ( [32] => 3 [33] => 2 [34] => sa ) )
Que faut- il modifier pour qu'il me prennent toutes les données des tables?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //-----------table a Array ( [0] => Array ( [17] => 1 [18] => 1 [19] => 2 [20] => 2 [21] => 2 [22] => 2 [23] => 0 [24] => iso-8859-1 [25] => fr [26] => Français [27] => France [28] => 20021102 [29] => 7 [30] => 0 [31] => ) [1] => Array ( [17] => 2 [18] => 2 [19] => 1 [20] => 1 [21] => 1 [22] => 1 [23] => -1 [24] => iso-8859-1 [25] => en [26] => English [27] => England [28] => 20021102 [29] => 7 [30] => [31] => £ ) [2] => Array ( [17] => 3 [18] => 3 [19] => 1 [20] => 1 [21] => 1 [22] => 1 [23] => 0 [24] => iso-8859-1 [25] => de [26] => Deutschland [27] => Deutscher [28] => 20021102 [29] => 7 [30] => 0 [31] => ) [3] => Array ( [17] => 4 [18] => 3 [19] => 1 [20] => 1 [21] => 1 [22] => 1 [23] => 0 [24] => iso-8859-1 [25] => esp [26] => Espagne [27] => Espagnol [28] => 20021102 [29] => 7 [30] => 0 [31] => ) ) //-----------table b [4] => Array ( [32] => 1 [33] => 2 [34] => ie ) [5] => Array ( [32] => 2 [33] => 2 [34] => fi ) [6] => Array ( [32] => 3 [33] => 2 [34] => sa ) )
Partager