Выгрузка данных с другой БД

Здравствуйте, помогите в помощи, не знаю с чего начать.
Нужно сделать выгрузку проектов с другой базы данных, сама БД делает выгрузку со сторонего сервера. И после выгрузки нужно вывести на сайте, данные автоматически обновляются в базе, нужно чтоб автоматически производилась постоянное обновление ресурсов и его вывод. Все будет работать с недвижимостью… в этом новичок и первый раз буду осуществлять такую работу плагина.
Alexander Ostroushko
26 июня 2018, 12:37
modx.pro
2
1 208
0

Комментарии: 2

PG
PG
27 июня 2018, 07:07
0
Пример выгрузки заказов с другой БД, думаю адаптировать под создание и обновление ресурсов не будет проблемой

$user = 'user';
$pass = 'password';
$host = '127.0.0.1';
$dbname = 'dbname';

$conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass,
    array(
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
    ));


$mainSQL = "SELECT * FROM `orders` ";
$sth = $conn->prepare($mainSQL);
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();
$retRows = $sth->fetchAll();

foreach ($retRows as  $item){
    $uid = 0;
    if($us = $modx->getObject('modUserProfile', array('email' => $item['customers_email_address']))){
        $uid = $us->get('internalKey');
    } else {
        $user = $modx->newObject('modUser');
        $user->set('username', $item['customers_email_address']);
        $user->set('password', '');
        $user->save();
        $profile = $modx->newObject('modUserProfile');
        $profile->set('fullname', $item['customers_name']);
        $profile->set('email', $item['customers_email_address']);
        $profile->set('phone', $item['customers_telephone']);
        $user->addOne($profile);
        $profile->save();
        $user->save();
        $uid = $user->get('id');
    }

    $adr = $modx->newObject('msOrderAddress');
    $arr = [
        'user_id'=>$uid,
        'receiver'=>$item['customers_name'],
        'createdon'=>$item['date_purchased'],
        'updatedon'=>$item['last_modified'],
        'phone'=>$item['customers_telephone'],
        'country'=>$item['customers_country'],
        'index'=>$item['customers_postcode'],
        'region'=>$item['customers_state'],
        'city'=>$item['customers_city'],
        'street'=>$item['customers_street_address'],
        'metro'=>$item['customers_company'],
    ];
    $pa = $item['payment_method'];
    $adr->fromArray($arr);
    $adr->save();
    $order = $modx->newObject('msOrder');
    $arr = [
        'user_id'=>$uid,
        'createdon'=>$item['date_purchased'],
        'updatedon'=>$item['last_modified'],
        'num'=>$item['orders_id'],
        'status'=>$item['orders_status'],
        'payment'=>$item['payment'],
        'delivery'=>1,
        'address'=>$adr->get('id'),
        'cost'=>$item['cost'],
        'cart_cost'=>$item['cost'],
        'delivery_cost'=>0,
        'weight'=>0,
    ];
    $order->fromArray($arr);
    $order->save();
}
    Alexander Ostroushko
    02 июля 2018, 21:51
    0
    Спасибо большое)Очень признателен)

    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2