Є база данних розташована на одному документі гугл таблиці. В цій гугл таблиці є такі листи (1 кімн. продаж, 2 кімн. продаж, 3 кімн. продаж, 4 кімн. продаж, 5 кімн. продаж, Кімната продаж, Будинки продаж, Новобуд. продаж, Земля продаж, 1 кімн. оренда, 2 кімн. оренда, 4 кімн. оренда,5 кімн. оренда, Кімната оренда оренда, Будинки оренда, Земля оренда) В цих листах однакові стовбчики (а - text, b-title,c-url,d-date,e-city,f-neigborhood,g-deal,h-property,i-price,j-area,k-kitchen,l-floor,m-number_of_floors,n-room,o-author,p-url_author,q-id,r-type_author,s-land,t-type_object,u-phone,v-type_walls,w-repair,x-custom,y-photo,z-status) Проблема: з часом коли об'єктів нерухомості у всьому документі стало більше 4х тисяч то таблиця почала підторможувати. І я так розумію що чим далі тим буде гірше. Рішення: перенести існуюче готове, робоче рішення із гугл таблиці на базу даних сайту wordpress. Як це працює зараз: в кожному листі гугл таблиці є декілька фіксованих посилань на сайт olx список оголошень нерухомості (наприклад https://www.olx.ua/uk/nedvizhimost/kvartiry/prodazha-kvartir/cherkassy/?currency=USD&search%5Bfilter_enum_apartments_object_type%5D%5B0%5D=secondary_market&search%5Bfilter_enum_number_of_rooms_string%5D%5B0%5D=odnokomnatnye&search%5Border%5D=created_at%3Adesc&search%5Bprivate_business%5D=business) Щодня 3 рази на день готовий скрипт page_parser.js в appscript гугл таблиці відправляє ці посилання на наш готовий парсер page_parser.php на сайті, який обробляє це посилання і ми отримуємо масив тексту, ось приклад масиву тексту: Array ( [0] => Array ( [id] => 895233733 [url] => https://www.olx.ua/d/uk/obyavlenie/1-kmnatno-kvartiri-dealniy-varant-dlya-nvestora-pd-orendu-IDYAjbL.html [title] => 1-кімнатної квартири - ідеальний варіант для інвестора під оренду. [location_date] => Черкаси - 21 серпня 2025 р. [price] => 38000.1194279799100100 [area] => .1566161680228224 ) [1] => Array ( [id] => 892557014 [url] => https://www.olx.ua/d/uk/obyavlenie/vrodvushka-u-tsentr-msta-z-gazovim-avtonomnim-opalennyam-IDYp4QS.html [title] => Євродвушка у центрі міста з газовим автономним опаленням [location_date] => Черкаси - 21 серпня 2025 р. [price] => 71500 [area] => 42 ) [2] => Array ( [id] => 889724395 [url] => https://www.olx.ua/d/uk/obyavlenie/prodam-1k-kvartiru-zhk-svyatotrotskiy-bul-shevchenka-202-IDYdbXt.html [title] => Продам 1к квартиру ЖК СВЯТОТРОЇЦЬКИЙ | бул. Шевченка, 202 | [location_date] => Черкаси - 22 серпня 2025 р. [price] => 58821 [area] => 62.31 ) і так далі. ) Цей масив тексту відправляється назад до гугл таблиці де його очікує і обробляється через наш скрипт page_parser.js наступним чином: Id кожного оголошення перевіряється на наявність із id в базі данних таблиці. Якщо знайдено співпадіння по id то оновлюється ціна в таблиці базі данних на ту ціну, яка є в масиві тексту. Якщо не знайдено співпадіння по id - то це значить, що на сайті олх зявилось нове оголошення, якого не має в нашій базі данних і його потрібно внести в базу данних. За цю дію відповідає інший готовий скрипт single_property.js в appscript, який бере посилання olx на конкретну квартиру (якої не має в базі данних таблиці) і відправляє це посилання на інший php скрипт сайту single_property.php і парсить данні по цьому оголошенню, де в результаті ми отримуємо наступний текст для прикладу: "https://www.olx.ua/d/uk/obyavlenie/prodam-smart-kvartiru-chehova-56-IDYK426.html 897558754 Приватна особа Руслан https://www.olx.ua/uk/list/user/22BbN/ Варіант X: Продам смарт-квартиру Чехова 56 Місцезнаходження: Черкаси Вид об'єкта: Вторинний ринок Тип будинку: Гостинка Поверх: 9 Поверховість: 9 Загальна площа: 21 м² Площа кухні: 4 м² Тип стін: Цегляний Клас житла: Економ Кількість кімнат: 1 кімната Меблювання: Так Побутова техніка: Холодильник, Мікрохвильова піч, Духова шафа, Плита, Пральна машина Мультимедіа: Швидкісний інтернет Комфорт: Кондиціонер, Балкон, лоджія, Меблі на кухні, Душова кабіна, Гардероб Комунікації: Центральна каналізація, Електрика, Газ, Центральний водопровід Інфраструктура (до 500 метрів): Дитячий садок, Школа Опис: Квартира повністю мебльована та електрифікована: кондиціонер, холодильник, мікрохвильовка, бойлер, пральна маш., електрорушникосушка, інтернет,(заходь і живи) Балкон засклений. Лічильники на воду і газ встановлені. Вікна та балконний блок металопластикові. Загальна площа 21 м.кв. 9 поверх. Дуже зручне розташування(вся необхідна інфоаструктура поруч) Прохання, якщо Вас зацікавила квартира писати на вайбер(не завжди є змога відповісти на дзвінок) 09*********59 Ціна: 25 000 $ Фото: https://chempion-agency.com/gallery.php?gallery_id=gallery_68a97fa73e1f0" single_property.js очікує цей текст від скрипту сайту single_property.php і цей отриманий текст відправляється назад до гугл таблиці і надсилається у відповідне id нашої бази данних, а якщо такого id не має то створює новий рядок в базі данних де розприділяються ці дані автоматично по стовбчикам таблиці. Також задача скрипта page_parser.js поставити у стовбчику z-статус, "активно" або "неактивно". Логіка побудована таким чином, що якщо є співпадіння по конкретному id із масиву тексту і id в базі данних таблиці то статус=активно, якщо співпадінь із масиву тексту не має це значить що оголошення на сайті olx уже тако не має і воно не активне тобто статус в базі данних нашої таблиці зміниться на статус=неактивно. Вимоги: швидкість, простота і лаконічність. Поговорив із gemini pro і вона сказала, що рішення із ACF не підійде так як коли буде оголошень більше 10ти тисяч оголошень то сайт із базою данних також буде глючити. Скріншот 1 Одним із рішень буде напевно скріншот 2. Для наглядності створили візуальний мокап сайту як це має виглядати з фільтром і списком обєктів нерухомості (скріншот 4) і лендингом одного оголошення (скріншот 3). Деталі по скриптам php і js нідшлю якщо треба. Якщо ви маєте свій підхід і бачення, це також вітається.