Добрый день, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались. | |
| Похожие темы |
|
IKZOKZ | Подскажите, как решить. Нужно посредством планировщика задания каждые пару часов копировать/обновлять определенные поля таблиц. Из «shop_produkte» в «shop_produkte_2» В «Class.Cron.php» дописал
В «Class.Core.php» дописал
Может быть кого-то рассмешит мой код ) Всё же буду благодарен за подсказку | ||
SX | Для добавления своих заданий, можно и не трогать класс крон, вроде писал об этом на форуме, но не помню где. Ща разберем, тока найду заготовку |
SX | Итак как сделать собственное запускаемое по расписанию задание. Разбираем задачу ТС, главное принцип понять, все просто:) Итак идем в админку и создаем новое задание. Все поля заполняем по логике, поле модуль - выбираем функция. Вписываем в поле функция SyncImport::update, в поле параметры функции - вписываем имя таблицы (этот параметр будет в переменной $table, метода update) Далее создаем новый класс
И кидаем в папку класс с именем class.SyncImport.php и все класс будет запускаться по расписанию и будет выполнять метод update. Можно собрать в один класс все нужные задания и различать их только названиями методов в поле вызова функции SyncImport::update2, SyncImport::update3 и тд. Не забываем что это статическая функция в классе и следовательно нельзя применять $this->, Что бы это обойти используем такой фокус
| ||
IKZOKZ | Спасибо за подержку! Все отлично работает! Еще, чтобы новые добавлялись сделал так
Теперь столкнулся с новой задачей. Талица "shop_produkte" находится в другой базе на том же хосте. Возможно заставить
считать с одной базы и записывать в другую "_shop_produkte_2" типа такого
Отредактировано IKZOKZ: 01.07.2013, 02:20:37 | ||||
SX | Первая версия не умеет работать одновременно с несколькими базами, поэтому силами класса не получится реализовать, но с помощью стандартных функций реализовать можно |
IKZOKZ | Цитата Автор: Status-X Первая версия не умеет работать одновременно с несколькими базами, поэтому силами класса не получится реализовать, но с помощью стандартных функций реализовать можно Значит, в том же классе бесполезно писать!? «с помощью стандартных функций» это, в каких файлах? А если продублировать в «db.config.php» $config['dbhost'] на $config['dbhost2'] итп в «Class.DB.php» подобно. Такое получится? |
SX | Оказывается наврал, делал я метод в 1.04 для работы с любым количеством баз, был видать в каком то заказе. Для ранних версий смотреть наличие метода getADB в классе с базой, подправить его так
Подключение выполняется так
В $db2 будет находится ссылка на экземпляр класса другой базы. Пример запроса
Константу PREFIX использовать нельзя, так как в ней хранится префикс первого подключения, поэтому используем метод $db2->Prefix() | |||
SX | Функцию s() так же нельзя использовать при работе с другой базой, вместо нее иследует использовать оригинальный метод $db2->Escape() |
IKZOKZ | Подскажите что в этом задании не так? не хочет обновлять Задание должно выполнять обновление с другого сервера Версия 1.05 Моё задание
class.DB.php
| ||
SX | Навскидку все вроде правильно кроме того что, что адрес и порт соединения укажите раздельно. Названия параметров смотрите в конфиге базы |
|
Похожие темы | Предыдущая тема | Следующая тема |
Быстрый переход: |
Темы | Сообщения | Пользователи | |
За сутки: | 0 | 0 | 0 |
За неделю: | 0 | 0 | 0 |
За месяц: | 0 | 0 | 1 |
Всего: | 1444 | 9453 | 3410 |
Мы приветствуем нового участника: dota812651 |