json을 사용하여 MySQL (PDO)에 3 개의 테이블을 보내고 싶습니다. 첫 번째 테이블 주에 루프가 : 두 번째 테이블 (가져 오기) 첫 번째 테이블 (fetchAll) 세 번째 표는이 형식으로 보내는 방법테이블 안의 Json 테이블
$stmt1 = $db->prepare("SELECT * FROM data WHERE countid='1'");
$stmt1->execute();
$data = $stmt1->fetchAll(PDO::FETCH_OBJ);
$stmt2 = $db->prepare("SELECT id,title FROM weeks WHERE id='2'");
$stmt2->execute();
$data->weeks[] = $stmt2->fetch(PDO::FETCH_OBJ);
$stmt3 = $db->prepare("SELECT id,name FROM user WHERE id='1'");
$stmt3->execute();
$data->user[] = $stmt3->fetch(PDO::FETCH_OBJ);
$response = new stdClass();
$response->data[] = $data;
echo json_encode($response);
을 (가져 오기) :
{"data":[
{"title":"name of module1",
"description":"description of module1",
"weeks":[{"id":1,"title":"Week 01"}],
"user":[{"id":1,"name":"george"}]
},
{"title":"name of module2",
"description":"description of module2",
"weeks":[{"id":2,"title":"Week 02"}],
"user":[{"id":2,"name":"john"}]
}
]
}
데이터 : id, name, content, user_id, week, countid;
주 : id, data_id, checkin, checkout;
사용자 : id, username, name, surname;
(data.id는 ==을 weeks.data_id)과 동일한 (data.user_id는 ==를 user.id) .. 확인
는 첫 번째 테이블은 배열이 아니었다. 배열을 만들기 위해 모든 코드를 변경해야하므로 새로운 질문을합니다. 질문자는 별도의 질문으로 대답 할 수 있다고 대답했습니다. –
첫 번째 쿼리에서 하나의 행만 선택하면 'fetchAll'이 필요하지 않습니다. – RiggsFolly
SELECT * 내 첫 번째 쿼리 –