0
This is almost exactly what I want,하지만 그 질문에 대한 답변이 없었으며 1 년이 지났습니다. 나는 가까이 접근 할 수 있었지만, 숫자는 키로 인쇄되고 있다고 생각합니다. 내 예제에서는 47 행에 나타나지만 실제 파일의 모든 "course_name"에 대해 반복됩니다.MySQL에서 중첩 된 JSON
[
{
"school_name": "Projects",
"terms": [
{
"term_name":"category_name#1",
"departments": [
{
"department_name":"sub_category_name1",
"department_code":"category code text here",
"courses":[
{
"course_name": "project1",
"course_code":"project 1 code text goes here",
"sections":[
{
"section_code":"mike",
"unique_id":"[email protected]"
},
{
"section_code":"dan",
"unique_id":"[email protected]"
}
]
},
{
"course_name": "project2",
"course_code":"project 2 code text goes here",
"sections":[
{
"section_code":"steve",
"unique_id":"[email protected]"
},
{
"section_code":"chris",
"unique_id":"[email protected]"
}
]
}
]
},
{
"department_name": "sub_category_name2",
"department_code":"sub category description text goes here..",
"courses": {
-->>> "69": {
"course_name": "project3",
"course_code":"project3 code text goes here ",
"sections":[
{
"section_code":"Alex",
"unique_id":"[email protected]"
}
]
}
}
}
]
}
]
}
]
여기는 내가 사용중인 쿼리와 반환되는 데이터의 예입니다.
SELECT school_name, term_name, department_name, department_code, course_code, course_name, section_code, magento_course_id
FROM schools INNER JOIN term_names ON schools.id=term_names.school_id INNER JOIN departments ON schools.id=departments.school_id INNER JOIN
adoptions ON departments.id=adoptions.department_id
"UCA-2" "SPRING 2013" "ACCOUNTING" "ACCT" "3315" "COST ACCOUNTING" "10258" 10311
이 코드는 내가 생성 한 것입니다.
$row_array = array();
$terms = array();
$departments = array();
$courses = array();
$h = 0;
$i = 0;
$j = 0;
while ($row = mysqli_fetch_assoc($fetch)) {
$row_array[$row['school_name']]['school_name'] = $row['school_name'];
$akey = array_search($row['term_name'], $terms);
if ($akey === FALSE) {
$m = $h++;
$terms[] = $row['term_name'];
$row_array[$row['school_name']]['terms'][$m]['term_name'] = $row['term_name'];
} else {
$m = $akey;
}
$key = array_search($row['department_code'], $departments);
if ($key === FALSE) {
$k = $i++;
$departments[] = $row['department_code'];
$row_array[$row['school_name']]['terms'][$m]['departments'][$k]['department_name'] = $row['department_name'];
$row_array[$row['school_name']]['terms'][$m]['departments'][$k]['department_code'] = $row['department_code'];
} else {
$k = $key;
}
$skey = array_search($row['course_code'], $courses);
if ($skey === FALSE) {
$l = $j++;
$courses[] = $row['course_code'];
$row_array[$row['school_name']]['terms'][$m]['departments'][$k]['courses'][$l]['course_name'] = $row['course_name'];
$row_array[$row['school_name']]['terms'][$m]['departments'][$k]['courses'][$l]['course_code'] = $row['course_code'];
} else {
$l = $skey;
}
$row_array[$row['school_name']]['terms'][$m]['departments'][$k]['courses'][$l]['sections'][] = array('section_code' => $row['section_code'], 'unique_id' => $row['magento_course_id']);
}
어떻게이 숫자가 표시되지 않고이 JSON을 생성합니까?
정확히 무엇을 찾으십니까? 강좌를 큰 키/값 객체 대신 객체의 배열로 만들고 싶습니까? {key : {course}, key2 : {course2}} 대신 [{course}, {course2}]를 사용 하시겠습니까? – tommybananas
나는이 사실을 잘 작성하고, 쿼리와 쿼리에서 반환 된 몇 가지 예제 데이터를 게시한다는 아이디어를 가지고 있습니다. – RiggsFolly
@ snowman4415 내가 출력하려고하는 것은 필자의 예제 46 행까지 패턴입니다. 그것이 패턴이 바뀌는 곳입니다. –