2016-04-13 4 views
0

プロジェクトでMatrixツリービューを作成する必要があります。ですので、jsonを使用する予定です。私の質問は、PHPの値をJsonで取得する方法です。私は静的マトリックスツリーをやったが、私は動的なものを求めている。進んでいただきありがとうございます。JsonでPHPデータベース値を取得する方法は?

私のコードは以下の通りです:

<?php 
include('db.php'); 
$select = mysql_query("select * from table1"); 
while($row = mysql_fetch_array($select)) 
{ 
?> 
{ 
"name": "A", // Here database values come $row['name']; 
"children": [ 



    { 
    "name": "B", 
    "children": [ 
    {"name": "B-1"} 
    ] 
    }, 
    { 
    "name": "C", 
    "children": [ 
    {"name": "C-1", "size": 1082}, 

    {"name": "C-2", "size": 1681} 
    ] 
    }, 



    { 
    "name": "D", 
    "children": [ 
    { 
    "name": "D-1", 
    "children": [ 
     {"name": "D-1 1", "size": 1302}, 


     {"name": "D-1 2", "size": 6703} 
    ] 
    }, 

    {"name": "D-2", "size": 16540} 
    ] 
    } 
] 
} 
<?php 
} 
?> 
+0

また、データベースからすべての子どもを取得するか、子オブジェクトのマッピングをどのように取得しますか? – Bfcm

答えて

0

あなたは自分のデータベースからデータを取得し、通常どおりのように配列に格納することができます。次にPHPの組み込み関数json_encode()を呼び出して、PHP配列をjsonに変換します(PHP配列がうまく構成されていると仮定します(データベースから取り出した場合)。

データを1回ではなく2回反復しているので、これは遅いと主張できますが、問題はありません。複雑さは変わりません。

+0

このリンクを参照してください[リンクを参照](http://php.net/manual/en/function.json- encode.php)しかし、私はjsonで変数を宣言し、PHPでフェッチする方法を知らないのですか?ありがとうございました –

1

この例では、mysqliドライバを使用しています。 mysqlドライバを使用しないでください。

出力データをjsonオブジェクトに変換するだけで済みます。

all the rows at onceを抽出すると、それほどオーバーヘッドが少なくなります。

$data = mysqli_fetch_all($select); // returns everything in an associative array 
$json_data = json_encode($data); // converts that array to json. 

特定のキーが必要な場合は、必要に応じて列の名前を変更するためにクエリを操作します。

$query = "select name as firstname from ...."; 
関連する問題