Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将表中的相应数据包含到另一个表中的json_Php - Fatal编程技术网

Php 将表中的相应数据包含到另一个表中的json

Php 将表中的相应数据包含到另一个表中的json,php,Php,我有两张桌子和食品标签。食物的每一行都有相应的标签。 我想输出带有这些标记的每一行,即: 餐桌食品: id |名称 1 |面包 2 |肉 表标记: 参考|标识|标签 1 |面包店 1 |小麦 2 |奶牛 期望输出为: {“结果”: [{“id”:“1”,“名称”:“面包”,“标签”:[“面包房”,“小麦”]} {“id”:“2”,“name”:“meat”,“tags”:[“cow”]}] } 到目前为止,我有: $db = getConnection(); $stmt = $db->qu

我有两张桌子和食品标签。食物的每一行都有相应的标签。 我想输出带有这些标记的每一行,即:

餐桌食品: id |名称 1 |面包

2 |肉

表标记: 参考|标识|标签 1 |面包店

1 |小麦

2 |奶牛

期望输出为: {“结果”: [{“id”:“1”,“名称”:“面包”,“标签”:[“面包房”,“小麦”]}

{“id”:“2”,“name”:“meat”,“tags”:[“cow”]}] }

到目前为止,我有:

$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) . '}';

我曾想过在每一种食物中骑自行车,然后贴上标签,找到匹配的一对,但这对我来说似乎很重(考虑到事实,我可能有几千排)。你有什么建议吗?

未经测试,但我认为这样的建议应该适合你

$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) . '}';
}   
$db=getConnection();
$stmt=$db->query($sql)//从每种食物中获取每一个专栏
$tagsSql=“选择F.id作为id,F.name作为name,group_concat(T.tag分隔符',')作为标记T,feeds F中的标记,其中F.id=T.feed_id_按feed_id_引用分组”;
$stmt=$db->query($tagsSql);
对于($x=0;$x{“tags”}=explode(“,”,$tags[$x]->{“tags”});
echo“{”results:“.json_encode($tags)。”;
}   

谢谢,它需要一些小的更正,但它确实让我知道了更正,我将更新答案以帮助下一个Guy我编辑了你的答案+要查看表中的所有食物条目,每个食物都必须有其相关的标签表(否则$tags中的结果将仅是有一些标签的食物行)