-2
저는 며칠 동안이 작업을 해오 고 저의 머리카락을 거의 없애고 있습니다.데이터베이스에서 루프가있는 중첩 다차원 배열 만들기
FOREACH 루프에서 JSON을 출력하려고하므로 일일 클래스 일정을 템플릿으로 사용할 수 있습니다. 나는 거기에있는 길의 대부분을 가지고 있으며, 일이 예기치 않게 끊어 지거나 나옵니다. 당신이 볼 수 있듯이, 나는 "CLASS"아래에 중첩 된 "학생"을 싶습니다
{
"DAY": "TUESDAY",
"TIME": {
"530": {
"CLASSES": [
{
"CLASS": {
"INSTRUCTOR": "DANA",
"CLASS_LEVEL": "JUNIOR",
"MAX_STUDENTS": "8"
}
},
{
"CLASS": {
"STUDENTS": [
{
"STUDENT": [
{
"FIRST NAME": "Alexandra",
"LAST NAME": "",
"DATE OF BIRTH": ""
}
]
}
]
}
},
{
"CLASS": {
"STUDENTS": [
{
"STUDENT": [
{
"FIRST NAME": "Leivi",
"LAST NAME": "",
"DATE OF BIRTH": ""
}
]
}
]
}
},
{
"CLASS": {
"STUDENTS": [
{
"STUDENT": [
{
"FIRST NAME": "Traivon",
"LAST NAME": "",
"DATE OF BIRTH": ""
}
]
}
]
}
},
{
"CLASS": {
"STUDENTS": [
{
"STUDENT": [
{
"FIRST NAME": "Keira",
"LAST NAME": "",
"DATE OF BIRTH": ""
}
]
}
]
}
},
{
"CLASS": {
"STUDENTS": [
{
"STUDENT": [
{
"FIRST NAME": "Madison",
"LAST NAME": "",
"DATE OF BIRTH": ""
}
]
}
]
}
},
그러나 :
아래 코드는 생성했다. 내가 도대체 뭘 잘못하고있는 겁니까? 나는 내 인생을 위해 그것을 이해할 수 없다. 나는 다차원 배열을 싫어하기 시작했다. : -}
function dailySchedule() {
global $conn;
$sql = 'SET DATEFIRST 1
SELECT [DAY].[DAY] AS [DAY], CLASS.CLASSTIME AS CLASSTIME, CLASSLEVEL.CLASSLEVEL AS CLASSLEVEL, CLASS.MAXSTUDENT AS MAXSTUDENT,
INSTRUCTOR.FIRSTNAME AS INSTRUCTOR, STUDENT.FIRSTNAME AS STUDENTFIRST, STUDENT.SURNAME AS STUDENTLAST, STUDENT.DOB AS STUDENTDOB
FROM STUDENT JOIN BOOKING ON STUDENT.ID = BOOKING.STUDENTID JOIN CLASS ON CLASS.ID = BOOKING.CLASSID JOIN CLASSLEVEL ON
CLASS.CLASSLEVELID = CLASSLEVEL.ID JOIN [DAY] ON CLASS.CLASSDAY = [DAY].ID JOIN INSTRUCTOR ON CLASS.INSTRUCTORID = INSTRUCTOR.ID
WHERE [DAY].ID = (DATEPART(dw, GETUTCDATE() AT TIME ZONE \'AUS Eastern Standard Time\'))
ORDER BY CLASS.CLASSTIME ASC, INSTRUCTOR.FIRSTNAME ASC, CLASSLEVEL.CLASSLEVEL ASC';
$studentDetails =
$sqlEx = $conn->query($sql);
$schedule = array();
foreach($sqlEx as $rows) {
if(!isset($day) || $day !== $rows['DAY']) {
$day = $rows['DAY'];
$schedule = array('DAY' => $day) + $schedule;
}
if(!isset($time) || $time !== $rows['CLASSTIME']) {
$time = $rows['CLASSTIME'];
}
if(!isset($instructor) || $instructor !== $rows['INSTRUCTOR']) {
$instructor = $rows['INSTRUCTOR'];
$schedule['TIME'][$time]['CLASSES'][]['CLASS'] = [
'INSTRUCTOR' => $instructor,
'CLASS_LEVEL' => $rows['CLASSLEVEL'],
'MAX_STUDENTS' => $rows['MAXSTUDENT'],
];
}
//if($instructor == $rows['INSTRUCTOR']){
$schedule['TIME'][$time]['CLASSES'][]['CLASS']['STUDENTS'][]['STUDENT'][] = [
'FIRST NAME' => $rows['STUDENTFIRST'],
'LAST NAME' => $rows['STUDENTLAST'],
'DATE OF BIRTH' => $rows['STUDENTDOB']
];
//}
}
echo json_encode($schedule, JSON_PRETTY_PRINT);
@ 사전 모두에
감사합니다. 잘 모르겠어요
와 [mcve을] – pvg