arrToString($params); $catalog = "SELECT * FROM sent_catalog WHERE id = '$id'"; $catalogQuery = $this->db->query($catalog); $catalogArr = []; if ($catalogRes = $this->db->fetch_assoc($catalogQuery)) { $agent_id = $catalogRes['agent_id']; $agent = "SELECT users.first_name, last_name, middle_name, phone, photo, email, user_logo, phoneAgency, site, agency_name FROM users WHERE id = '$agent_id'"; $agentQuery = $this->db->query($agent); $agentArr = []; if ($agentRes = $this->db->fetch_assoc($agentQuery)) { $agentRes['agency_name'] = html_entity_decode($agentRes['agency_name'], ENT_QUOTES, 'UTF-8'); $agentArr = $agentRes; } } $sendedPdf = "SELECT * FROM sended_pdf_newbuildings WHERE sent_catalog_id = '$id'"; $sendedPdfQuery = $this->db->query($sendedPdf); $sendedPdfArr = []; while ($sendedRes = $this->db->fetch_assoc($sendedPdfQuery)) { $sendedPdfArr[] = $sendedRes['sent_catalog_id']; } $blocks = "SELECT blocks.*, regions.name AS region_name , COUNT(catalogs_apartments_favorite.id) AS count_favorite_apartments FROM blocks LEFT JOIN regions ON regions.id = blocks.region_id LEFT JOIN apartments ON apartments.block_id = blocks.id LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id' WHERE apartments.id IN ( SELECT id_object FROM sended_pdf_newbuildings WHERE sent_catalog_id = '$id' ) GROUP BY blocks.id"; $blocksQuery = $this->db->query($blocks); $blocksArr = []; while ($blocksRes = $this->db->fetch_assoc($blocksQuery)) { $block_id = $blocksRes['id']; // Тут фото блока $block_img = "SELECT image from block_images WHERE model_id = '$block_id'"; $block_imgQuery = $this->db->query($block_img); $block_imgArr = []; while ($block_imgRes = $this->db->fetch_assoc($block_imgQuery)) { $block_imgArr[] = $block_imgRes['image']; } // Находим метро $metro = "SELECT subway_id, distance, metro FROM block_subways LEFT JOIN metro ON block_subways.subway_id = metro.id WHERE block_subways.block_id = '$block_id'"; $metroQuery = $this->db->query($metro); $metroArr = []; while ($metroRes = $this->db->fetch_assoc($metroQuery)) { $metroArr[] = $metroRes; } $apartments = "SELECT IF(catalogs_apartments_favorite.id IS NOT NULL, 1, 0) AS is_favorite, room_types.name AS room_type_name, decoration_types.name AS decoration, apartments.*, buildings.corp AS building_corp, buildings.floors AS building_floors, buildings.deadline AS building_deadline FROM apartments JOIN buildings ON buildings.id = apartments.building_id JOIN decoration_types ON decoration_types.id = apartments.decoration_id JOIN room_types ON room_types.id = apartments.room_type_id LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id' WHERE apartments.id IN ( SELECT id_object FROM sended_pdf_newbuildings WHERE sent_catalog_id = '$id' AND apartments.block_id = '$block_id')"; $apartmentsQuery = $this->db->query($apartments); $apartmentsArr = []; while ($apartmentsRes = $this->db->fetch_assoc($apartmentsQuery)) { $apartmentsRes['is_favorite'] = (bool)$apartmentsRes['is_favorite']; $apartmentsArr[] = $apartmentsRes; } $blocksRes['apartments'] = $apartmentsArr; $blocksRes['block_img'] = $block_imgArr; $blocksRes['metros'] = $metroArr; $blocksArr[] = $blocksRes; } return [ 'id' => $catalogRes['id'], 'agent_id' => $catalogRes['agent_id'], 'agent' => $agentArr, 'blocks' => $blocksArr, 'sendedPdf' => $sendedPdfArr ]; } public function getApartment($id, $token) { $user = []; $id = $this->arrToString($id); if ($token) { $userSql = "SELECT id, fio, phone, photo, email, site, first_name, last_name, middle_name, id_manager, user_logo FROM users WHERE MD5(id)='$token'"; $rez_user = $this->db->query($userSql); $user = $this->db->fetch_assoc($rez_user); if ($user['id_manager']) { $sql = "SELECT id_manager, photo, fio FROM users WHERE id='$user[id_manager]'"; $rez = $this->db->query($sql); $manager = $this->db->fetch_assoc($rez); if ($manager['id_manager']) { $agency = $this->db->fetch_assoc($this->db->query("SELECT id_manager, email, site, first_name, last_name, middle_name, photo, fio FROM users WHERE id='$manager[id_manager]'")); } else { $agency = $manager; } $user['photo'] = $agency['photo']; $user['agency_name'] = trim($agency['last_name'] . ' ' . $agency['first_name'] . ' ' . $agency['middle_name']); } else { $user['agency_name'] = $user['fio']; } } $apartments = "SELECT IF(catalogs_apartments_favorite.id IS NOT NULL, 1, 0) AS is_favorite, room_types.name AS room_type_name, decoration_types.name AS decoration, apartments.*, buildings.corp AS building_corp, buildings.floors AS building_floors, buildings.deadline AS building_deadline FROM apartments JOIN buildings ON buildings.id = apartments.building_id JOIN decoration_types ON decoration_types.id = apartments.decoration_id JOIN room_types ON room_types.id = apartments.room_type_id LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id' LEFT JOIN blocks on blocks.id = apartments.block_id WHERE apartments.id = {$id}"; // var_dump($apartments);die; $apartmentsQuery = $this->db->query($apartments); $apartment = $this->db->fetch_assoc($apartmentsQuery); $block_id = $apartment['block_id']; // var_dump($apartment);die; $blockQuery = "SELECT * FROM blocks WHERE id = '$block_id'"; $block = $this->db->fetch_assoc($this->db->query($blockQuery)); $metro = "SELECT subway_id, distance, metro FROM block_subways LEFT JOIN metro ON block_subways.subway_id = metro.id WHERE block_subways.block_id = '$block_id'"; $metroQuery = $this->db->query($metro); $metroArr = []; while ($metroRes = $this->db->fetch_assoc($metroQuery)) { $metroArr[] = $metroRes; } $block['metros'] = $metroArr; $block_img = "SELECT image from block_images WHERE model_id = '$block_id'"; $block_imgQuery = $this->db->query($block_img); $block_imgArr = []; while ($block_imgRes = $this->db->fetch_assoc($block_imgQuery)) { $block_imgArr[] = $block_imgRes['image']; } $block['block_img'] = $block_imgArr; return [ "user" => $user, "apartment" => $apartment, "block" => $block ]; } }