- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть у меня база объектов, для которых есть адреса и координаты. На фронте в одном месте выводится число - число объектов поблизости.
Давно это число не обновлял и насколько помню программист писал некий функционал на эту тему, но связи с ним нет.
Полез в код (хоть сам и не кодер) и вроде нашел то что нужно
function mapcron(){
$this->_db->setQuery("SELECT geo_lat,geo_long,item_id,id FROM #__firms_address WHERE nearby=0 LIMIT 500");
$alladress = $this->_db->loadObjectList();
foreach($alladress as $item){
$address=array();
$this->_db->setQuery("SELECT t1.id FROM #__firms_items AS t1 INNER JOIN #__firms_address AS t4 ON t1.id = t4.item_id
WHERE
(t4.geo_long BETWEEN ".($item->geo_long - 0.01)." AND ".($item->geo_long + 0.01).") AND
(t4.geo_lat BETWEEN ".($item->geo_lat - 0.01)." AND ".($item->geo_lat + 0.01).") GROUP BY t1.id LIMIT 100");
$address = $this->_db->loadObjectList();
if(!empty($address))
{
$this->_db->setQuery("UPDATE #__firms_items SET nearby=".count($address)." WHERE id=".$item->item_id);
$this->_db->execute();
$this->_db->setQuery("UPDATE #__firms_address SET nearby=".count($address)." WHERE id=".$item->id);
$this->_db->execute();
}
$result=true;
}
return $result;
}
Вот мне как раз и нужно обновить поле nearby в таблице firms_items
Как теперь правильно все это дело запустить на сервере, чтобы скрипт пробежался по адресам (их 60.000) и обновил поле nearby?
А сервер локальный или на хостинге?
Dram,
Функция у Вас в принципе самодостаточная, даже по адресам пробегает сама.
Так что запросы и логика вся есть, достаточно заменить вызовы к БД.
Вместо подряд идущих ( set->query и loadobjectlist ) сделайте просто выборку в массив запроса из set-query
Вместо $item->geo_long пишите $item['geo_long'] и т.д.
Вместо ( set->query и execute ) достаточно просто запроса в БД.
И всё.
Или поищите откуда эта функция вызывалась. Она у Вас часть класса, так что вызов надо искать по принципу ->mapcron. Может будет очевидно как надо обратиться к сайту, что бы она сработала.
Да, Просто упрощу.
Выше прокрутите, найдите "имяКласса".
Вызов: \"буквы\буквы\буквы"\"имяКласса"->mapcron(); В том файле, в котором точно был require( файл содержащий класс с методом mapcron). Если вменяемый автолоадер, то в любом месте.
Нашел -
{
var $_db = null;
ниже внутри этого класса более 10 разных функций.
Сделал поиск по всем файлам сайта - mapcron больше нигде не встречается.
Как теперь правильно запустить?
Самое простое, найти, файл где есть что то похожее на
и потом
в этом скрипте;Беглый взгляд говорит что в mapcron используется только $_db ($this->_db) из этого класса. Тогда можно просто написать какой то скрипт (судя по гуглу _db->loadObjectList, это у вас джумла). Быстро находится пример. Делаем по аналогии, вставляем в свой скрипт функцию, меняем в ней
function mapcron(){$this->_db->setQuery(
на
function mapcron( $db ){$db->setQuery(
Разбираемся почему в примере
defined('_JEXEC') or die('Restricted access');Видимо _JEXEC определяется после каких то стартовых манипуляций в index.php.
В итоге получится что то типа, который положим в файл и запустим хттп://сайт.ру/мапкрон.пхп