gpt4 book ai didi

php - 将多个表中的数据合并到具有多个值的数组中

转载 作者:行者123 更新时间:2023-11-29 17:30:44 25 4
gpt4 key购买 nike

在以下示例中,记录数据加载到客户端的网格中。

表 my_cars

id   car_name
1 Ford
2 BMW

表 cars_detail

id_detail  id_car  country  car_detail
1 1 USA red
2 1 USA blue
3 2 GER green

如果用户选择一行,记录数据将以更新表单加载。

客户端必须以 JSON 格式接收数据,格式如下:

第一条记录

    car_name : "Ford"  

my_cars: Array(2)
0: {id_detail: "1", country: "USA", car_detail: "red"}
1: {id_detail: "2", country: "USA", car_detail: "blue"}

第二条记录

    car_name : "BMW"      

my_cars: Array()
0: {id_detail: "1", country: "GER", car_detail: "green"}

我正在努力以所需的格式获取 my_cars 数组值。

如果我只需要从 cars_detail 表中获取数据,我会执行以下正确工作的方法:

$query = "SELECT id_detail, country, car_detail
FROM cars_detail";

$statement = $conexion->query($query);

while($row = $statement->fetch_assoc()) {
$my_cars[] = array(
'id_car'=> $row['id_car'],
'country'=> $row['country'],
'car_detail'=> $row['car_detail']
);
};

但是我需要从两个表中获取每条记录的数据。

在我的一次尝试中,我尝试在查询中使用 GROUP_CONCAT,然后以某种方式使用爆炸来创建正确的数组。

$query = "SELECT mc.car_name
GROUP_CONCAT(DISTINCT CONCAT( 'id_detail', ':', cd.id_detail, 'country', ':', cd.country, 'car_detail', ':', cd.car_detail) SEPARATOR ',') AS all_detail_values,
FROM my_cars mc
LEFT JOIN cars_detail cd ON mc.id_car = cd.id_car
LIMIT ?,?";

if ($statement = $conexion->prepare($query)){

$statement->bind_param("ii", $start, $limit);
$statement->execute();

statement->bind_result($car_name, $all_detail_values);

while($statement->fetch()){

//This solution does not work correctly
$values = explode(",", $all_detail_values);
foreach($values as $value){
list($key,$val) = explode(" : ", $value);
$my_cars[][$key] = $val;
}


$output[] = array(
'car_name'=>$car_name,
'my_cars'=>$my_cars
);
};


echo json_encode(array(
"records_values" => $output
);

解决此类案例的最佳方法是什么?

已编辑

抱歉,如果我没有以最好的方式解释这一点。这是 http://sqlfiddle.com/#!9/456203/11 :

my_cars 必须采用数组格式

最佳答案

我不明白为什么您需要GROUP_CONCAT它。简单地列出该列有什么问题吗?

SELECT mc.car_name, cd.id_detail, cd.country, cd.car_detail
FROM my_cars mc
LEFT JOIN cars_detail cd ON mc.id_car = cd.id_car
LIMIT ?,?

关于php - 将多个表中的数据合并到具有多个值的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50683403/

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