こんにちは私はPHPでjson形式でグループ化する方法に問題があります。グループJSON形式をPHPで取得する
ここに私のコードです。
$sql = "SELECT * FROM event as e
JOIN course as c ON e.id = c.event_id
JOIN hold as h ON c.id = h.course_id
GROUP By h.id";
$query = mysqli_query($con, $sql);
$data = [];
while($row = mysqli_fetch_assoc($query)) {
$eInfo = new stdClass();
$eInfo->e_info = [];
$event = new stdClass();
$event->e_code = $row['e_code'];
$event->c_info = [];
$course = new stdClass();
$course->c_code = $row['course_code'];
$course->h_info = [];
$hold = new stdClass();
$hold->h_code = $row['hold_code'];
$course->h_info[] = $hold;
$event->c_info[] = $course;
$eInfo->e_info[] = $event;
$data[] = $eInfo;
}
$json = json_encode($data, JSON_PRETTY_PRINT);
return $json
結果は次のとおりです。
[
{
"e_info": [
{
"e_code": "e001",
"c_info": [
{
"c_code": "C001",
"h_info": [
{
"h_code": "h001"
}
]
}
]
}
]
},
{
"e_info": [
{
"e_code": "e001",
"c_info": [
{
"c_code": "C001",
"h_info": [
{
"h_code": "h002"
}
]
}
]
}
]
},
{
"e_info": [
{
"e_code": "e001",
"c_info": [
{
"c_code": "C002",
"h_info": [
{
"h_code": "h001"
}
]
}
]
}
]
},
{
"e_info": [
{
"e_code": "e001",
"c_info": [
{
"c_code": "C002",
"h_info": [
{
"h_code": "h002"
}
]
}
]
}
]
}
]
e_codeとcourse_codeは重複していると私はグループにこれらをしたいです。 phpをjson形式としてjson配列をこのようにすることは可能ですか?
[
{
"e_info": [
{
"e_code": "e001",
"c_info": [
{
"c_code": "c001",
"h_info": [
{
"h_code": "h001"
},
{
"h_code": "h002"
}
]
},
{
"c_code": "c002",
"h_info": [
{
"h_code": "h001"
},
{
"h_code": "h002"
}
]
}
]
}
]
}
]
お願いします。ありがとうございました。
ようなあなたの
SELECT
文でGROUP BY
を試みなければなりませんか? –コードの一部を共有できますか? – Rtra
私はplzの質問を編集します。 –