创建具有多个数据库表的json API

时间:2015-04-28 11:01:49

标签: php mysql json api

我正在使用食谱创建API。我有3个表:食谱,成分和recipe_ingredient,其中recipe_id和ingredients_id是来自其他两个表的外键。

我设法从表recipe_ingredient获得所有东西,它工作正常。我的问题是:如何在这个数组中使用食谱和成分的信息获取数组?我有点明白我必须做一种join但我不知道知道如何在我的API中获取它。

嗯,很难解释,但我希望你理解。这是我的代码:

$db = new PDO("mysql:host=localhost;dbname=recipes;charset=utf8", "root", "root");
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$stm = $db->prepare("SELECT * FROM recipe_ingredient") ;

$stm->execute();

header('Content-Type: application/json');

while($row = $stm->fetch(PDO::FETCH_ASSOC)) {

    $api = json_encode($row, JSON_PRETTY_PRINT);
    print_r($api);

}

1 个答案:

答案 0 :(得分:0)

您需要以某种方式加入表格

"SELECT * FROM recipe_ingredient left join ingredient on ingredient.id = recipe_ingredient.ingredient_id left join recipe on recipe.id = recipe_ingredient.receipe_id"

然后你可以在php中使用foreach循环来制作最终结果并使用api返回。