gpt4 book ai didi

php - PHP 中的多级 JSON 数组

转载 作者:行者123 更新时间:2023-11-29 00:31:57 24 4
gpt4 key购买 nike

在我的农业相关 Android 应用程序中,用户将农裁剪的名称发送到 PHP 网络服务,该网络服务应返回有关该农裁剪的详细信息。

这是数据库的示例结构。

Crop_Master:Crop_Id , Crop_Name , Seed_Rate , Fertilizer
Pest: Crop_id , Pest_Name

现在我了解了 PDO 的 fetchAll() 函数,如果数据来自单个表,则将其转换为 JSON 数组。

像这样:这里的数据来自 Crop_Master 表并且工作正常。

$query1="select seed_rate,fertilizer_dosage from crop_master where crop_id='$crop_id'";

$res=$db->query($query1);

$output=$res->fetchAll(PDO::FETCH_ASSOC);

print(json_encode($output));

但我不知道当数据来自多个表时如何创建单个“输出”数组。

假设我想创建一个这样的 JSON 数组:

[
{
"seed_rate":"value_from_db"
"fertilizer":"value_from_db"
"pests":
[{"pest_name:"value_from_db"}
{"pest_name:"value_from_db"}
.
.
.
]
}
]

那么如何运行多个查询并生成单个输出数组?

最佳答案

您需要将数组元素“pests”添加到数组 $output 并填充它...如何,将取决于数据库结构,但可能类似于

$query1="select seed_rate,fertilizer_dosage from crop_master where crop_id='$crop_id'";    
$res=$db->query($query1);
$output=$db->fetchAll(PDO::FETCH_ASSOC);

$query2="select pest_name from pests, crop_pests where pests.pest_id = crop_pests.pest_id and crop_pests.crop_id='$crop_id'";
$res=$db->query($query2);
$output["pests"]=$db->fetchAll(PDO::FETCH_ASSOC);

print(json_encode($output));

所以,要点是,您需要将害虫数组作为 $output 数组的元素。我的$query2当然只是一个例子,需要根据你的数据库进行调整

关于php - PHP 中的多级 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14972485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com