1

簡単なデータベースを作成しています。次のようなカテゴリテーブルがあります。

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_name` varchar(256) NOT NULL,
   PRIMARY KEY (`id`)
)ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

製品テーブルは次のようになります。

CREATE TABLE IF NOT EXISTS `products` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `recipe_name` varchar(32) NOT NULL,
 `category_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

今、私はこのようなデータをフェッチしたい:

{
"data": {
    "menu": [
        {
            "id": "4821076d99ca1ad5fdb3aba31c19a8a7730533a6f7ea5b0a",
            "category_name": "Italian",
            "recipes": [
                {
                    "id": "7728135",
                    "recipe_name": "Pizza",  
                },
                {
                    "id": "7728136",
                    "recipe_name": "Garlik bread",
                },
                {
                    "id": "7951066",
                    "recipe_name": "Pasta",
                }
            ]
        },
    ]
},
"status": "1",
"message": ""

}

以下のクエリを使用していますが、機能しません...

$query = "SELECT c.category_name as category_name, p.id, 
          p.recipe_name,p.category_id FROM
            " . $this->table_name . " p
            LEFT JOIN categories c
                    ON p.category_id = c.id";

上記のクエリを使用すると、次のような応答が得られました。

{
  "data":[
           {
             "category_id":"5",
             "category_name":"Healthy Eating",
             "recipes":[
                        {
                         "id":"18",
                         "recipe_name":"GARDEN SALAD"
                        }
                      ]
           },
           {
            "category_id":"5",
            "category_name":"Healthy Eating",
            "recipes":[
                       {
                        "id":"19",
                        "recipe_name":"Vegetable salad"
                       }
                      ]
           }
       ]
}
4

1 に答える 1