0

私はテーブルを持っています、基本的にはそのようなものです

------------------
id | name  | type
------------------
1  | name1 | type1
2  | name2 | type2
3  | name3 | type3 
------------------

クエリして次のように表示したい

type1
 - name1
 - and so on...
type2
 - name2
 - and so on...    
type3
 - name 3
 - and so on...

また、次のようなJSONファイルとして表示したいと考えています。

   [
    {
        "type1": {
            "name": "name1"
        },
        "type2": {
            "name": "name2"
        },
        "type3": {
            "name": "name3"
        }
    }
]

だから、私はそれを行うための最良の方法を知っていますか?ループを使用してタイプを照会し、次にカテゴリーを選択してタイプ別に表示しますか?

編集:インターネットで高低を検索した後。私はこれを見つけました:http://www.tommylacroix.com/2008/09/10/php-design-pattern-building-a-tree/

したがって、私のニーズに合わせてこのコードを作成しました。それが効率的かどうかわからない:

<?php
$query = "SELECT * FROM TABLE";
$list = array();
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
    if(!$list[$row['type']])
    {
        $list[$row['type']] = array();
    }
    array_push($list[$location['type']],&$row['name']) ;
}
?>
4

1 に答える 1

4

これを試してください....以下の結果出力も参照して ください

SELECT id,CONCAT_WS(',',type,name) as result FROM table GROUP BY id

<?php
$sql= mysql_query("SELECT id,CONCAT_WS(',',type,name) as result FROM table GROUP BY id");
$data = array();
$i=0;
while($row = mysql_fetch_array($sql)){

    $ex_res = explode(",",$row['result']);
    $data[$ex_res[0]]['name'] = $ex_res[1];  
    $i++;
}

$a = json_encode($data);
print_r($a);
?>

結果出力

{"type1":{"name":"name1"},"type2":{"name":"name2"},"type3":{"name":"name3"}}
于 2012-06-03T06:56:21.923 に答える