2010-09-26 4 views
2

Ceci est MySQL Query:tableau multi-dimensionnel de MySQL Résultat

SELECT `TABLE_SCHEMA` , `TABLE_NAME` , `COLUMN_NAME` 
FROM `COLUMNS` WHERE `TABLE_SCHEMA` = 'zfk' 

Comment puis-je faire des tableaux multidimensionnels:
Niveau 1 TABLE_SCHEMA (La requête ci-dessus est juste une démo, une requête réelle autre n'a pas where clause).
Niveau 2 TABLE_NAME
Niveau 3 COLUMN_NAME

MySQL Sortie:
alt text

Répondre

2

Que diriez-vous:

$query = mysql_query("SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME 
FROM COLUMNS WHERE TABLE_SCHEMA = 'zfk'"); 

$resulting_array = array(); 
while($row = mysql_fetch_array($query, MYSQL_NUM)){ 
    $resulting_array[] = $row; 
} 

print_r($resulting_array); 

Cette imprimera:

[0] => array([0] => zfk, [1] => zfk_clients, [2] => id 
[1] => array([0] => zfk, [1] => zfk_clients, [2] => company_name 
[2] => array([0] => zfk, [1] => zfk_clients, [2] => web_address 

et ainsi sur.

1

J'ai testé cela et il fonctionne:

$pdo = new PDO("mysql:dbname=information_schema", "XXXX", "XXXX"); 
$sql = "SELECT `TABLE_SCHEMA` , `TABLE_NAME` , `COLUMN_NAME` 
     FROM `COLUMNS` WHERE `TABLE_SCHEMA` = 'zfk'"; 
$stmt = $pdo->prepare($sql); 
$stmt->execute(); 
$zfk = array(); 
while ($row = $stmt->fetch()) { 
    $s = $row["TABLE_SCHEMA"]; 
    $t = $row["TABLE_NAME"]; 
    $c = $row["COLUMN_NAME"]; 
    $zfk[$s][$t][$c] = 1; 
} 
print_r($zfk); 

Il produit un tableau à trois dimensions avec des noms de schéma que la première dimension, les noms de table comme la deuxième dimension, et les noms de colonnes comme la troisième dimension.

+0

Bien sûr, je n'ai pas de schéma nommé 'zfk', donc j'ai utilisé mon schéma' test'. –