У меня есть настройка PDO, и она работает без проблем. Я могу добавить , изменить , del et c. Так что проблема здесь. В БД существует отношение one to many
, и когда я выбираю родительскую таблицу, я хочу вместе с ней перейти к связанной дочерней таблице.
соединение БД с PDO .
private $server = "localhost";
private $username = "name";
private $password = "password";
private $database = "database_name";
protected function connect(){
$dns = "mysql:host=" . $this->server . ";dbname=" . $this->database;
$pdo = new PDO($dns, $this->username, $this->password);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
return $pdo;
}
класс пользователей
class Users extends Dbc {
public function get_users(){
$sql = "SELECT user.id as u_id,
user.user as u_name,
schedule.id as s_id,
schedule.status as s_status,
schedule.content as s_content,
schedule.return_date as s_date,
schedule.remarks as s_remarks
FROM users user
JOIN schedules schedule ON schedule.user_id = u.id";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$data = [];
while ($row = $stmt->fetch()) {
$schedules = [
'id' => $row['s_id'],
'status' => $row['s_status'],
'content' => $row['s_content'],
'date' => $row['s_date'],
'remarks' => $row['s_remarks'],
];
if (!isset($data[$row['c_id']])) {
$row['u_id'] = [
'id' => $row['u_id'],
'name' => $row['u_name'],
'schedules' => [$schedules]
];
} else {
$row['u_id']['schedules'][] = $schedules;
}
echo json_encode($data);
}
}
это, конечно, возвращает только users
таблица, так как правильно выбрать таблицу пользователей с дочерней таблицей в ней. Что мне нужно изменить в PDO ...