我有两张桌子--食物和标签。食品中的每一行都有相应的标签。我想输出具有这些标记的每一行,即:
餐桌食物:
id |名称
1|面包
2|肉
表标签:
reference_id |标签
1|面包店
1|小麦
2|母牛
期望的输出为:
{“result”:[{"id":"1",“name”:“面包”,“tags”:“面包房”,“小麦”},
{"id":"2",“名称”:“肉”,“标签”:“牛”}]}
到目前为止,我有这样的想法:
$db = getConnection();
$stmt = $db->query($sql);//get every column from every food
$food = $stmt->fetchAll(PDO::FETCH_OBJ);
$tagsSql="select id_reference,tag FROM tags T,food F WHERE F.id=T.food_id_reference";
$stmt = $db->query($tagsSql);
$tags=$stmt->fetchAll(PDO::FETCH_OBJ);
echo '{"results":' . json_encode($food) . '}';我正在考虑循环遍历每一种食物和标签,并找到匹配的配对,但对我来说,这似乎是相当重要的(考虑到我可能有数千行)。你有什么意见建议?
发布于 2013-07-02 22:17:20
未经测试,但我认为这样的东西应该可以为您工作
$db = getConnection();
$stmt = $db->query($sql);//get every column from every food
$tagsSql="select F.id as id, F.name as name, group_concat(T.tag SEPARATOR ',') as tags FROM tags T,feeds F WHERE F.id=T.feed_id_reference group by feed_id_reference";
$stmt = $db->query($tagsSql);
for($x = 0; $x < count($tags); $x++){
$tags[$x]->{"tags"} = explode(",", $tags[$x]->{"tags"});
echo '{"results":' . json_encode($tags) . '}';
} https://stackoverflow.com/questions/17426297
复制相似问题