Joywork/import/FbnParser.php
2026-05-22 21:21:54 +03:00

898 lines
32 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// require_once($_SERVER['DOCUMENT_ROOT']."/engine/functions.php");
// if region == spb
// adres = address
// if district is valid
// rayon = district
// elseif sub_local is valid
// rayon = sub_local
// else
// if locality_name is valid
// rayon = locality_name
// else
// adres += locality_name
// -------------------------------------------------
class FbnParser
{ public $region = 'Ленинградская обл.';
public $city = 'Санкт-Петербург';
public function load($url,$mdb){
$reader = new \XmlReader();
$doc = new DOMDocument();
if(!$reader->open($url)){
die('Failed to open');
}
$cnt = 0;
$offers = [];
$time_start = microtime(true);
while($reader->read()){
if($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'offer'){
$offer = simplexml_import_dom($doc->importNode($reader->expand(),true));
if((string)$offer->{'category'} == 'квартира' && $offer->{'x-comission'}){
// if((string)$offer['internal-id'] == '{204F24AA-F332-11EA-BBE6-E83935BA0948}'){
// var_dump((string)$offer['internal-id']);
$object_id = $this->is_objects_exist('fbn_id',$offer['internal-id'],'objects');
if($object_id>0){
// echo $object_id;
$this->update_kvartira($object_id,$offer,$mdb);
}else if($this->search_kvartira($offer,$mdb)==0){
$this->add_kvartira($offer,$mdb);
}
// break;
// }
}
}
}
echo "TIME : ".(microtime(true)-$time_start);
$reader->close();
}
private function preprocess($offer){
$ready = [];
$ready['operation_type'] = $offer['type'] == 'Продажа' ? 1 : 0;
switch ($offer['category']) {
case 'квартира':
$ready['type'] = 1;
break;
case 'комната':
$ready['type'] = 2;
break;
case 'дом':
$ready['type'] = 3;
break;
case 'коммерческая':
$ready['type'] = 4;
break;
case 'часть дома':
$ready['type'] = 5;
break;
case 'коммерческая':
$ready['type'] = 6;
break;
case 'участок':
$ready['type'] = 7;
break;
}
}
function search_kvartira($offer,$mdb){
$sql ="SELECT id FROM objects WHERE ";
$sql.="type=1 ";
$sql.="AND operation_type=1 ";
$sql.="AND stoim=".(string)$offer->{'price'}->{'value'}." ";
$sql.="AND etazh=".(string)$offer->{'floor'}." ";
$sql.="AND etazh_iz=".(string)$offer->{'floors-total'};
$rez = mysql_query($sql);
$rez = mysql_fetch_row($rez);
return $rez ? $rez[0] : 0;
}
function update_kvartira($obj,$offer,$mdb){
$ready['objects']['sobstv'] = (string)$offer->{'sales-agent'}->{'organization'};
if(isset($offer->{'sales-agent'}->{'phone'})){
$ready['objects']['phone'] = (string)$offer->{'sales-agent'}->{'phone'};
$ready['objects']['phone_search'] = num_search((string)$offer->{'sales-agent'}->{'phone'});
}else if(isset($offer->{'sales-agent'}->{'organization-phone'})){
$ready['phone']['phoneAgency'] = (string)$offer->{'sales-agent'}->{'organization-phone'};
$ready['phone']['phone_search'] = num_search((string)$offer->{'sales-agent'}->{'organization-phone'});
}
if(isset($offer->{'sales-agent'}->{'name'})){
$ready['objects']['sobstv'] .= " ".(string)$offer->{'sales-agent'}->{'name'};
}
if(isset($offer->{'rooms'})){
$ready['objects']['komnat'] = (string)$offer->{'rooms'};
}else{
$ready['objects']['komnat'] = 1;
}
list($ready['objects']['id_rf_region'],$ready['objects']['rayon'],$ready['objects']['adres']) = $this->get_location($offer);
$ready['objects']['nazv'] = $ready['objects']['komnat']." комнатная квартира";
if(isset($offer->{'studio'})){
$ready['objects']['studio_flag'] = 1;
}
if(isset($offer->{'area'})){
$ready['objects']['ploshad'] = (string)$offer->{'area'}->{'value'};
}
if(isset($offer->{'kitchen-space'})){
$ready['objects']['ploshad_k'] = (string)$offer->{'kitchen-space'}->{'value'};
}
if(isset($offer->{'living-space'})){
$ready['objects']['ploshad_komn'] = (string)$offer->{'living-space'}->{'value'};
}
if(isset($offer->{'floor'})){
$ready['objects']['etazh'] = (string)$offer->{'floor'};
}
if(isset($offer->{'floors-total'})){
$ready['objects']['etazh_iz'] = (string)$offer->{'floors-total'};
}
if(isset($offer->{'description'})){
$ready['objects']['opis'] = (string)$offer->{'description'};
}
if(isset($offer->{'price'})){
$ready['objects']['stoim'] = (string)$offer->{'price'}->{'value'};
}
if(isset($offer->{'x-comission'})){
if(intval((string)$offer->{'x-comission'}->{'value'}) <= 100 ){
$ready['objects']['commission'] =(string)$offer->{'x-comission'}->{'value'};
$ready['objects']['lease'] = 0;
}else{
$ready['objects']['lease'] =(string)$offer->{'x-comission'}->{'value'};
$ready['objects']['commission'] = 0;
}
}
if(isset($offer->{'x-hot-water'})){
$ready['objects']['hot_water_id'] = $this->select_or_insert_like(
'name',
(string)$offer->{'x-hot-water'},
'hot_water',
$mdb
);
}
if(isset($offer->{'x-rubbish-chute'})){
$ready['objects']['rubbish_chute'] = (string)$offer->{'x-rubbish-chute'};
}
if(isset($offer->{'building-type'})){
$ready['objects']['rent_house_type_id'] = $this->determine_house_type((string)$offer->{'building-type'},$mdb);
$ready['sale_objects']['house_type'] = $ready['objects']['rent_house_type_id'];
}else{
$ready['sale_objects']['house_type']=0;
}
if(isset($offer->{'deal-status'})){
$ready['sale_objects']['deal_type'] = $this->determine_deal_type((string)$offer->{'deal-status'},$mdb);
}else{
$ready['sale_objects']['deal_type'] = 0;
}
if(isset($offer->{'x-wall'})){
$ready['sale_objects']['house_material'] = $this->determine_house_material((string)$offer->{'x-wall'},$mdb);
}else{
$ready['sale_objects']['house_material'] = 0;
}
$ready['sale_objects']['object_id'] = $obj;
$ready['photos'] = [];
$this->update_sale_object($ready['sale_objects'],$mdb);
if(isset($offer->{'image'})){
for($i = 0;$i<count($offer->{'image'});$i++){
$ready['photos']['photo'.($i+1)] = (string)$offer->{'image'}[$i];
if(($i+1)==50){
break;
}
}
}
if(isset($offer->{'creation-date'})){
$ready['objects']['date_really_add'] = (string)$offer->{'creation-date'};
$ready['objects']['date_really_add'] = str_replace('T',' ',$ready['objects']['date_really_add']);
$ready['objects']['date_really_add'] = explode('+',$ready['objects']['date_really_add']);
$ready['objects']['date_really_add'] = $ready['objects']['date_really_add'][0];
}
if(isset($offer->{'mortgage'})){
$ready['objects']['stoim_prim'] = $offer->{'mortgage'} == '1' ? 'Возможна ипотека':'';
}
if(isset($offer->{'last-update-date'})){
$ready['objects']['date_add'] = (string)$offer->{'last-update-date'};
$ready['objects']['date_add'] = str_replace('T',' ',$ready['objects']['date_add']);
$ready['objects']['date_add'] = explode('+',$ready['objects']['date_add']);
$ready['objects']['date_add'] = $ready['objects']['date_add'][0];
}
if($offer->{'bathroom-unit'}){
$ready['objects']['bath_type_id'] = $this->determine_bath((string)$offer->{'bathroom-unit'},$mdb);
}
///////////////////////////////////////////////////////////////////////////////////////////
$this->update_object($obj,$ready['objects'],$mdb);
if(isset($offer->{'location'}->{'metro'})){
$this->update_object_metro($obj,(string)$offer->{'location'}->{'metro'}->{'name'},$mdb);
}
///////////////////////////////////////////////////////////////////////////////////////////
$ready['objects_additional_information']['object_id'] = $obj;
if(isset($offer->{'ceiling-height'})){
$ready['objects_additional_information']['ceiling_height'] = (string)$offer->{'ceiling-height'};
}
if(isset($offer->{'x-window'})){
$ready['objects_additional_information']['window_view'] = $this->select_or_insert_like(
'name',
(string)$offer->{'x-window'},
'window_view',
$mdb);
}
if(isset($offer->{'balcony'})){
$ready['objects_additional_information'] = array_merge($ready['objects_additional_information'],$this->determine_balcony((string)$offer->{'balcony'}));
}
if(isset($offer->{'renovation'})){
$ready['objects_additional_information']['renovation'] = $this->select_or_insert(
['name'=> (string)$offer->{'renovation'}],
'renovation',
$mdb);
}
$this->update_additional($ready['objects_additional_information'],$mdb);
$this->update_photo($obj, $ready['photos'],$mdb);
}
function add_kvartira($offer,$mdb){
$ready = [];
$ready['objects'] = array(
'id_add_user' => 0,
'operation_type' => 0,
'type' => 1,
'rayon' => 0,
'adres'=> '',
'transport' => 0,
'peshkom' => 0,
'komnat'=>0,
'ploshad'=>0,
'ploshad_k'=>0,
'ploshad_komn'=>0,
'etazh'=>0,
'etazh_iz'=>0,
'opis'=>0,
'stoim'=>0,
'commission'=>0,
'hot_water_id'=>0,
'rubbish_chute'=>0,
'rent_house_type_id'=>0,
'photo1'=>'',
'photo2'=>'',
'photo3'=>'',
'photo4'=>'',
'photo5'=>'',
'photo6'=>'',
'photo7'=>'',
'photo8'=>'',
'photo9'=>'',
'photo10'=>'',
'photo11'=>'',
'photo12'=>'',
'photo13'=>'',
'photo14'=>'',
'photo15'=>'',
'photo16'=>'',
'photo17'=>'',
'photo18'=>'',
'photo19'=>'',
'photo20'=>'',
'stoim_prim'=>'',
'date_really_add'=>'',
'date_add'=>'',
'nazv'=>'',
'srok'=>0,
'holod'=>0,
'stirka'=>0,
'tv'=>0,
'mebel'=>0,
'phone'=>'',
'archive'=>0,
'sobstv'=>0,
'phone_search'=>'',
'id_user'=>0,
'prim_srok'=>'',
'black'=>0,
'vsego_komn'=>0,
'moder'=>0,
'id_kv'=>0
);
$ready['objects']['sobstv'] = (string)$offer->{'sales-agent'}->{'organization'};
if(isset($offer->{'sales-agent'}->{'phone'})){
$ready['objects']['phone'] = (string)$offer->{'sales-agent'}->{'phone'};
$ready['objects']['phone_search'] = (string)$offer->{'sales-agent'}->{'phone'};
}else if(isset($offer->{'sales-agent'}->{'organization-phone'})){
$ready['phone']['phoneAgency'] = (string)$offer->{'sales-agent'}->{'organization-phone'};
$ready['phone']['phone_search'] = (string)$offer->{'sales-agent'}->{'organization-phone'};
}
if(isset($offer->{'sales-agent'}->{'name'})){
$ready['objects']['sobstv'] .= " ".(string)$offer->{'sales-agent'}->{'name'};
}
//////////////////////////////////////////////////////////////////////
$ready['objects']['operation_type'] = (string)$offer->{'type'} == 'Продажа' ? 1 : 0;
$ready['objects']['type'] = 1;
list($ready['objects']['id_rf_region'],$ready['objects']['rayon'],$ready['objects']['adres']) = $this->get_location($offer);
if(isset($offer->{'location'}->{'metro'})){
if(isset($offer->{'location'}->{'metro'}->{'time-on-transport'})){
$ready['objects']['transport'] = (string)$offer->{'location'}->{'metro'}->{'time-on-transport'};
}
if(isset($offer->{'location'}->{'metro'}->{'time-on-foot'})){
$ready['objects']['peshkom'] = (string)$offer->{'location'}->{'metro'}->{'time-on-foot'};
}
}
if(isset($offer->{'rooms'})){
$ready['objects']['komnat'] = (string)$offer->{'rooms'};
}else{
$ready['objects']['komnat'] = 1;
}
if(isset($offer->{'studio'})){
$ready['objects']['studio_flag'] = 1;
}
if(isset($offer->{'area'})){
$ready['objects']['ploshad'] = (string)$offer->{'area'}->{'value'};
}
if(isset($offer->{'kitchen-space'})){
$ready['objects']['ploshad_k'] = (string)$offer->{'kitchen-space'}->{'value'};
}
if(isset($offer->{'living-space'})){
$ready['objects']['ploshad_komn'] = (string)$offer->{'living-space'}->{'value'};
}
if(isset($offer->{'floor'})){
$ready['objects']['etazh'] = (string)$offer->{'floor'};
}
if(isset($offer->{'floors-total'})){
$ready['objects']['etazh_iz'] = (string)$offer->{'floors-total'};
}
if(isset($offer->{'description'})){
$ready['objects']['opis'] = (string)$offer->{'description'};
}
if(isset($offer->{'price'})){
$ready['objects']['stoim'] = (string)$offer->{'price'}->{'value'};
}
if(isset($offer->{'x-comission'})){
if(intval((string)$offer->{'x-comission'}->{'value'}) <= 100 ){
$ready['objects']['commission'] =(string)$offer->{'x-comission'}->{'value'};
}else{
$ready['objects']['lease'] =(string)$offer->{'x-comission'}->{'value'};
}
}
if(isset($offer->{'x-hot-water'})){
$ready['objects']['hot_water_id'] = $this->select_or_insert_like(
'name',
(string)$offer->{'x-hot-water'},
'hot_water',
$mdb
);
}
if(isset($offer->{'x-rubbish-chute'})){
$ready['objects']['rubbish_chute'] = (string)$offer->{'x-rubbish-chute'};
}
$ready['photos'] = [];
if(isset($offer->{'image'})){
for($i = 0;$i<count($offer->{'image'});$i++){
$ready['photos']['photo'.($i+1)] = (string)$offer->{'image'}[$i];
if(($i+1)==50){
break;
}
}
}
if(isset($offer->{'creation-date'})){
$ready['objects']['date_really_add'] = (string)$offer->{'creation-date'};
$ready['objects']['date_really_add'] = str_replace('T',' ',$ready['objects']['date_really_add']);
$ready['objects']['date_really_add'] = explode('+',$ready['objects']['date_really_add']);
$ready['objects']['date_really_add'] = $ready['objects']['date_really_add'][0];
}
if(isset($offer->{'mortgage'})){
$ready['objects']['stoim_prim'] = $offer->{'mortgage'} == '1' ? 'Возможна ипотека':'';
}
if(isset($offer->{'last-update-date'})){
$ready['objects']['date_add'] = (string)$offer->{'last-update-date'};
$ready['objects']['date_add'] = str_replace('T',' ',$ready['objects']['date_add']);
$ready['objects']['date_add'] = explode('+',$ready['objects']['date_add']);
$ready['objects']['date_add'] = $ready['objects']['date_add'][0];
}
$ready['objects']['nazv'] = $ready['objects']['komnat'] == 0 ? 1 : $ready['objects']['komnat'];
$ready['objects']['nazv'] .= " комнатная квартира";
$ready['objects']['fbn_id'] = $offer['internal-id'];
if(isset($offer->{'building-type'})){
$ready['objects']['rent_house_type_id'] = $this->determine_house_type((string)$offer->{'building-type'},$mdb);
$ready['sale-objects']['house_type'] = $ready['objects']['rent_house_type_id'];
}
if($offer->{'bathroom-unit'}){
$ready['objects']['bath_type_id'] = $this->determine_bath((string)$offer->{'bathroom-unit'},$mdb);
}
$object_id = $this->add_object($ready['objects'],$mdb);
///////////////////////////////////////////////////////////////////////////
if(isset($offer->{'deal-status'})){
$ready['sale_objects']['deal_type'] = $this->determine_deal_type($offer->{'deal-status'},$mdb);
}else{
$ready['sale_objects']['deal_type'] = 0;
}
if(isset($offer->{'x-wall'})){
$ready['sale_objects']['house_material'] = $this->determine_house_material($offer->{'x-wall'},$mdb);
}else{
$ready['sale_objects']['house_material'] = 0;
}
if(isset($offer->{'building-type'})){
$ready['sale_objects']['house_type'] = $this->determine_house_type($offer->{'building-type'},$mdb);
}else{
$ready['sale_objects']['house_type'] = 0;
}
$ready['sale_objects']['object_id'] = $object_id;
$this->add_sale_object($ready['sale_objects'],$mdb);
///////////////////////////////////////////////////////////////////////////
if(isset($offer->{'location'}->{'metro'})){
$this->add_metro_to_object($object_id,(string)$offer->{'location'}->{'metro'}->{'name'},$mdb);
}
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
$ready['objects_additional_information']['object_id'] = $object_id;
if(isset($offer->{'ceiling-height'})){
$ready['objects_additional_information']['ceiling_height'] = (string)$offer->{'ceiling-height'};
}
if(isset($offer->{'x-window'})){
$ready['objects_additional_information']['window_view'] = $this->select_or_insert_like(
'name',
(string)$offer->{'x-window'},
'window_view',
$mdb);
}
if(isset($offer->{'balcony'})){
$ready['objects_additional_information'] = array_merge($ready['objects_additional_information'],$this->determine_balcony((string)$offer->{'balcony'}));
}
if(isset($offer->{'renovation'})){
$ready['objects_additional_information']['renovation'] = $this->select_or_insert(
['name'=> (string)$offer->{'renovation'}],
'renovation',
$mdb);
}
$this->add_addit_info($ready['objects_additional_information'],$mdb);
$this->update_photo($object_id, $ready['photos'],$mdb);
return $object_id;
}
function determine_house_material($str,$mdb){
if(strtolower($str) == 'кирпично-монолитный'){
return 5;
}else{
return $this->select_or_insert_like(
'name',
$str,
'house_material',
$mdb);
}
}
function determine_house_type($str,$mdb){
if(strtolower($str) == 'кирпично-монолитный'){
return 15;
}else{
return $this->select_or_insert_like(
'name',
$str,
'house_type',
$mdb);
}
}
function determine_balcony($str){
$arr = explode(' ',$str);
$result = [];
for($i=0;$i<count($arr);$i++){
if('лоджия' == $arr[$i]){
$result['loggias'] = 1;
}
if('лоджии' == $arr[$i]){
$result['loggias'] = $arr[$i-1];
}
if('балкон' == $arr[$i]){
$result['balcony'] = 1;
}
if('балкона' == $arr[$i]){
$result['balcony'] = $arr[$i-1];
}
}
return $result;
}
function determine_bath($str,$mdb){
$new_types = [
'2 санузла' =>10,
'более 2х санузлов'=>11,
'сауна'=>12,
'в доме'=>13,
'на улице'=>14,
'биотуалет'=>15,
'ванна'=>16,
'бассейн'=>17
];
$id = 0;
if('совмещенный' == $str){
$id = 2;
}
if('раздельный' == $str){
$id = 3;
}
if('душ на кухне' == $str){
$id = 7;
}
if('без ванны' == $str){
$id = 9;
}
if('душ' == $str){
$id = 1;
}
if('душ' == $str){
$id = 1;
}
if('ванна на кухне' == $str){
$id = 7;
}
if('ванна на кухне' == $str){
$id = 7;
}
if($id==0){
$id = $this->select_or_insert_like('name',$str,'bath_type',$mdb);
}
return $id;
}
function determine_hot_water($str,$mdb){
$sql = "SELECT id FROM hot_water WHERE name LIKE '".$str."'";
$rez = mysql_query($sql);
$rez = mysql_fetch_row($rez);
return $rez[0];
}
function determine_deal_type($str,$mdb){
$sql = "SELECT id FROM deal_type WHERE name LIKE '".$str."'";
$rez = mysql_query($sql);
$rez = mysql_fetch_row($rez);
return $rez[0];
}
function select_or_insert($obj,$table,$mdb){
$cond = [];
foreach($obj as $key => $value){
array_push($cond,$key."='".$value."'");
}
$sql = "SELECT id FROM ".$table." WHERE ".implode(' AND ',$cond);
$rez=mysql_query($sql,$mdb);
$rez = mysql_fetch_row($rez);
if(!$rez){
$temp = array_map(function($x){
return "'".$x."'";
},$obj);
$sql = "INSERT INTO ".$table."(".implode(',',array_keys($obj)).") VALUES (".implode(',',$temp).")";
mysql_query($sql,$mdb);
$id = mysql_insert_id();
}else{
$id = $rez[0];
}
return $id;
}
function add_metro_to_object($obj,$metro,$mdb){
$metro = $this->select_or_insert(['metro' => $metro,
],'metro',$mdb);
$sql = "INSERT INTO sp_metro (id_metro,id_obj) VALUES (".$metro.",".$obj.")";
mysql_query($sql,$mdb);
}
function select_or_insert_like($key,$values,$table,$mdb){
$sequnce = explode(' ',$values);
$sql = "SELECT * FROM `$table` where ";
$sql .= "name LIKE '%".$sequnce[0]."%'";
for($i=1;$i<count($sequnce);$i++){
$sql .= "AND name LIKE '%".$sequnce[$i]."%' ";
}
$rez=mysql_query($sql,$mdb);
$rez = mysql_fetch_row($rez);
if(!$rez){
$sql = "INSERT INTO ".$table."(".$key.") VALUES ('".$values."')";
mysql_query($sql,$mdb);
$id = mysql_insert_id();
}else{
$id = $rez[0];
}
return $id;
}
function add_agent($user,$mdb){
$phoneAgency = isset($user['phoneAgency']) ? $user['phoneAgency'] : "";
$phone = isset($user['phone']) ? $user['phone'] : "";
$director = isset($user['director']) ? $user['director'] : "";
$fio = isset($user['first_name']) ? trim($user['last_name'] . ' ' . $user['first_name'] . ' ' . $user['middle_name']) : "";
$sql = "SELECT id FROM users WHERE director LIKE '$director' and fio LIKE '$fio'";
$rez = mysql_query($sql,$mdb);
$rez = mysql_fetch_row($rez);
if($rez){
$id = $rez[0];
}else{
$sql = "INSERT INTO users(director,phoneAgency, phone, fio, agent, moder, date_reg,
id_manager,pwd,admin, superadmin,txt,blocked,last_auth,photo,sitename, site,is_pwd,
smtp_from,smtp_fromname,smtp,smtp_ssl, smtp_port,smtp_lg,smtp_pwd,manager,agency,
smtp_check,adres, id_tarif,date_tarif,test_tarif, comment,user_logo,zipal_login,
zipal_password,department_id,role_id,email)
VALUES('$director','$phoneAgency', '$phone','$fio', '1', '0',
NOW(), '0',pwd,0,0,'',0,NOW(),'','','',0,'','','',0,0, '','',1,0,0,'',1,NOW(),0,'','','','',0,0,'')";
$rez = mysql_query($sql,$mdb);
$id = mysql_insert_id();
}
return $id;
}
function add_object($object,$mdb){
$values = array_map(function($value){
return "'$value'";
},$object);
$sql = "INSERT INTO objects(".implode(',',array_keys($object)).") VALUES (".implode(',',$values).")";
// $sql = "INSERT INTO objects(id_add_user,operation_type,type,rayon,adres,transport,peshkom,komnat,
// ploshad,ploshad_k,ploshad_komn,etazh,etazh_iz,opis,stoim,commission,hot_water_id,
// rubbish_chute,rent_house_type_id,photo1,photo2,photo3,photo4,photo5,stoim_prim,
// date_really_add,date_add,nazv,
// srok,holod,stirka,tv,mebel,phone,photo6,photo7,photo8,photo9,photo10,photo11,
// photo12,photo13,archive,sobstv,phone_search,id_user,prim_srok,black,
// vsego_komn,moder,photo14,photo15,photo16,photo17,
// photo18,photo19,photo20,id_kv)
// VALUES ('7623','1','2','39','Сланцы,Климчука ул, 4','20','15','2','2','6.00','17,6+17,3+12,6',
// '5','5','Арт. 14987880 Продаётся уютная 2 комнатная квартира, с ремонтом. Общая площадь 50 кв.м
// площадь комнат 13+18 кв.м. Раздельный санузел. Квартира расположена на 5 этаже 5 этажного кирпичного дома.
// Сделан косметический ремонт. Установлены Стеклопакеты , металическая дверь .Трубы поменяны,
// Горячая вода из центрального водоснабжения, есть обычная ванна. Удобное сообщение с Санкт- Петербургом,
// Остановка автобусов находится возле дома, в шаговой доступности д/ сад, школа, поликлинника,
// магазины \" Пятерочка \",\"Магнит\"Горячая вода из центрального водоснабжения, есть обычная ванна.
// Ленинградская область по адресу Климчука дом 4 г. Сланцы ближайшее метро.',
// '950000.00','1.00','3','0','6','http://zipal.ru/photo/62179397/ORIGINAL.jpg',
// 'http://zipal.ru/photo/62179398/ORIGINAL.jpg',
// 'http://zipal.ru/photo/62179399/ORIGINAL.jpg','http://zipal.ru/photo/62179400/ORIGINAL.jpg',
// 'http://zipal.ru/photo/64829597/ORIGINAL.jpg','1','2020-03-27 10:27:11','2020-08-25 15:56:51','2 квартира',
// 0,0,0,0,0,'','','','','','','','','',0,0,'',0,0,'',0,0,0,0,0,0,0,'','','','','','','',0,0,0,'',0,0)";
mysql_query($sql);
$id = mysql_insert_id();
return mysql_insert_id();
}
function add_sale_object($obj,$mdb){
$sale = $this->select_or_insert($obj,'sale_objects',$mdb
);
}
function add_addit_info($obj,$mdb){
$sale = $this->select_or_insert($obj,'objects_additional_information',$mdb);
}
function update_object($obj,$offer,$mdb){
$sql = "UPDATE objects SET ";
$temp = [];
foreach($offer as $key => $value){
$temp[] = $key."='".$value."'";
}
$sql .= implode(',',$temp);
$sql .= " WHERE id = ".$obj;
mysql_query($sql,$mdb);
}
function update_object_metro($obj,$metro,$mdb){
$metro = $this->select_or_insert(['metro' => $metro,
],'metro',$mdb);
$sql = "DELETE from sp_metro WHERE id_obj = ".$obj;
mysql_query($sql,$mdb);
$sql = "INSERT INTO sp_metro (id_metro,id_obj) VALUES (".$metro.",".$obj.")";
mysql_query($sql,$mdb);
}
function update_sale_object($offer,$mdb){
$sql = "DELETE from sale_objects WHERE object_id =".$offer['object_id'];
mysql_query($sql,$mdb);
$this->select_or_insert($offer,'sale_objects',$mdb);
}
function update_additional($offer,$mdb){
$sql = "DELETE FROM objects_additional_information WHERE object_id = ".$offer['object_id'];
mysql_query($sql,$mdb);
$this->select_or_insert($offer,'objects_additional_information',$mdb);
}
function update_photo($objectId, $photos, $mdb) {
//удаляем старые фото
$sqlSelectPhoto = "select oop.id, oop.object_photo_id from objects_object_photo oop where oop.object_id = $objectId";
$rezSelectPhoto = mysql_query($sqlSelectPhoto);
if (mysql_num_rows($rezSelectPhoto) > 0) {
while ($ph = mysql_fetch_assoc($rezSelectPhoto)) {
$sqlDeletePhoto = "DELETE FROM object_photo where id = $ph[object_photo_id]";
mysql_query($sqlDeletePhoto);
$sqlDeletePhotoLinks = "DELETE FROM objects_object_photo where id = $ph[id]";
mysql_query($sqlDeletePhotoLinks);
}
}
//вставляем фото
for($num = 1; $num <= 50; $num++) {
if (isset($photos['photo' . $num]) && $photos['photo' . $num]) {
$p = $photos['photo' . $num];
$sqlInsPhoto = "INSERT INTO object_photo(photo) VALUES('$p')";
mysql_query($sqlInsPhoto, $mdb);
$photoId = mysql_insert_id();
$sqlInsPhotoLink = "INSERT INTO objects_object_photo(object_id, object_photo_id, sort_order) VALUES($objectId, $photoId, $num)";
mysql_query($sqlInsPhotoLink, $mdb);
}
}
}
function is_objects_exist($key,$value,$table){
$sql = "SELECT id FROM ".$table." WHERE ".$key." = '$value'";
$rez = mysql_query($sql);
$rez = mysql_fetch_row($rez);
return $rez ? $rez[0]:0;
}
function is_object_exist_by_like($key,$value,$table,$with_like=false){
$sql = "SELECT id FROM ".$table." WHERE ";
$sql .=$key." LIKE '%".$value."%'";
$rez = mysql_query($sql);
$rez = mysql_fetch_array($rez);
return $rez ? $rez[0] : 0;
}
function get_location($offer){
$adres = '';
$rayon = 0;
if(isset($offer->{'location'}->{'locality-name'})){
$rayon=explode(' ',(string)$offer->{'location'}->{'locality-name'})[0];
if($rayon != $this->city){
$rayon = $this->is_object_exist_by_like('rayon',$rayon,'rayon');
}
}
if($rayon == 0){
$adres .=(string)$offer->{'location'}->{'locality-name'}.",";
}
if(isset($offer->{'location'}->{'district'})){
$rayon=explode(' ',(string)$offer->{'location'}->{'district'})[0];
$rayon = $this->is_object_exist_by_like('rayon',$rayon,'rayon');
}
if($rayon == 0){
if(isset($offer->{'location'}->{'sub-locality-name'})){
$rayon=explode(' ',(string)$offer->{'location'}->{'sub-locality-name'})[0];
$rayon = $this->is_object_exist_by_like('rayon',$rayon,'rayon');
}
}
if($rayon != 0){
$sqlRegion = "SELECT is_lo FROM rayon WHERE id = $rayon";
var_dump($sqlRegion);
$rez = mysql_query($sqlRegion);
if($row = mysql_fetch_row($rez)){
$region = $row[0] == 0 ? 81 : 50;
}
}
if(isset($offer->{'location'}->{'address'})){
$adres .= (string)$offer->{'location'}->{'address'};
}
return array($region,$rayon,$adres);
}
}