0){ while($r_g = mysql_fetch_assoc($q_g)){ if($temp_user['groups'] != '') $temp_user['groups'] .= ', '; $temp_user['groups'] .= $r_g['name']; } } } } $number_sip = $r['number_sip']; //$users[$r['number_sip']] = $temp_user; if($type == 'beeline'){ if(strpos($r['number_sip'],'@') !== false){ $part_user = explode('@', $r['number_sip']); if(isset($part_user[0])){ $number_sip = $part_user[0]; } } } $users[$number_sip] = $temp_user; } return $users; } function get_disconnect_reason(){ $reason = array(); $sql = "SELECT * FROM mango_result_codes"; $q = mysql_query($sql); while($r = mysql_fetch_assoc($q)){ $reason[$r['code']] = $r['value']; } return $reason; } function int_to_time($second) { $total_seconds = $second; $seconds = intval($total_seconds%60); if(strlen($seconds) == 1) $seconds = "0".$seconds; $seconds .= ' сек.'; $total_minutes = intval($total_seconds/60); $minutes = $total_minutes%60; if($minutes == 0) { $minutes = ''; } else { if(strlen($minutes) == 1) $minutes = "0".$minutes; $minutes .= ' м.'; } $hours = intval($total_minutes/60); if($hours == 0) { $hours = ''; } else { if(strlen($hours) == 1) $hours = "0".$hours; $hours .= ' ч.'; } return $hours." ".$minutes." ".$seconds; } function get_users_id($user_id = null){ $depClass = new Department(); if(is_null($user_id)){ $searchUserId = $_SESSION['id']; } else { $searchUserId = $user_id; } /*if($_SESSION['id'] == 5238){ $searchUserId = 7384; }*/ $adminDep = false; if ($_SESSION['agency'] || $_SESSION['manager'] || $_SESSION['users_admin']) { $agentIds = []; if ($_SESSION['users_admin'] || $_SESSION['id'] == 10838 || $_SESSION['id'] == 11403 || $_SESSION['id'] == 11738 || $_SESSION['id'] == 11703 || $_SESSION['id'] == 11799 || $_SESSION['id'] == 11709 || $_SESSION['id'] == 11804 || $_SESSION['id'] == 11697 || $_SESSION['id'] == 11895 || $_SESSION['id'] == 11781 || $_SESSION['id'] == 12272 || $_SESSION['id'] == 11842 || $_SESSION['id'] == 11705 || $_SESSION['id'] == 8829 || $_SESSION['id'] == 13063 || $_SESSION['id'] == 12010 || $_SESSION['id'] == 14530 || $_SESSION['id'] == 18613 ) { $user = new User; $user->get($searchUserId); $searchUserId = $user->agencyId; $agentIds[] = $user->agencyId; } $dep_user = $depClass->getDepartment((int)$_SESSION['id']); if($dep_user['role'] == 'manager_office'){ $searchUserId = $dep_user['admin']; $adminDep = true; } else if($dep_user['role'] == 'manager_office_menager') { $searchUserId = $user->id_manager; $adminDep = true; } /*if (!$searchUserId) $searchUserId = (int)$_SESSION['id'];*/ $agentIds[] = $searchUserId; $agentsOfAgency = User::getAllAgents($searchUserId); foreach ($agentsOfAgency as $agent) { if (!in_array($agent['id'], $agentIds)) { $agentIds[] = $agent['id']; } } if ($_SESSION['agency'] || $_SESSION['users_admin'] || $adminDep) { $agentsOfManager = User::getAllManagers($searchUserId); foreach ($agentsOfManager as $agent) { if (!in_array($agent['id'], $agentIds)) { $agentIds[] = $agent['id']; } if((int)$agent['role_id'] > 0 && (int)$agent['department_id'] > 0){ $role_user = $depClass->getRole((int)$agent['role_id']); if($role_user['role'] == 'admin_department'){ $menagerDep = User::getDepManagers($role_user['department_id']); foreach($menagerDep as $md){ if(!in_array($md['id'], $agentIds)){ $agentIds[] = $md['id']; $thisAgents = User::getAgentsOfAgency($md['id'], true); foreach($thisAgents as $da){ if (!in_array($da['id'], $agentIds)) { $agentIds[] = $da['id']; } } } } } } } } } else { $agentIds = [$searchUserId]; } $agentIds = array_unique($agentIds); return $agentIds; } $data = json_decode(file_get_contents("php://input")); $request = $data->request; // hide_client_contacts: маска для телефонов клиентов в выгрузке звонков (страница «Телефония»). // Применяется к from_number/entry_id/to_number, когда они сопоставлены с реальным клиентом. $hideContactsTel = function_exists('should_hide_contacts_for_current_user') && should_hide_contacts_for_current_user(); if($request == 'get_telephone'){ /*ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);*/ $response = array(); $pdopg = new MysqlPdo(hstpg, ndbpg, userpg, passpg, false, '5432', true); unset($_SESSION['calls_query']); unset($_SESSION['calls_query_pg']); $agencyId = $data->agency_id; if ($agencyId == 5238) { $agencyId = 7384; } $is_pg = false; $sql_tel = "SELECT `type` FROM `agency_mango` WHERE agency_id = {$agencyId}"; //echo $sql_tel; $q_tel = mysql_query($sql_tel); $type_phone = ''; while($r_tel = mysql_fetch_assoc($q_tel)){ if($r_tel['type'] == 'mango' || $r_tel['type'] == 'beeline' || $r_tel['type'] == 'telphin'){ $is_pg = true; $type_phone = $r_tel['type']; } } $sql_tel = "SELECT id FROM `agency_megafon` WHERE agency_id = {$agencyId}"; //echo $sql_tel; $q_tel = mysql_query($sql_tel); if(mysql_num_rows($q_tel) > 0){ // if($r_tel['type'] == 'mango' || $r_tel['type'] == 'beeline' || $r_tel['type'] == 'megafon'){ $is_pg = true; //} } $mango = new MangoApiClass('',''); $usersIds = array(); $usersIds[] = $agencyId; /* $agentsOfAgency = User::getAgentsOfManager($agencyId, true); foreach($agentsOfAgency as $ag){ $usersIds[] = $ag['id']; } $agentsOfManager = User::getAllManagers($agencyId); foreach($agentsOfManager as $manager){ $usersIds[] = $manager['id']; $agentsOfAgency = User::getAgentsOfManager($manager['id'], true); foreach($agentsOfAgency as $ag){ $usersIds[] = $ag['id']; } }*/ $sql_users = "SELECT id FROM users WHERE id in (select id from users where id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId)))"; //echo $sql_users; $q_users = mysql_query($sql_users); while($r_users = mysql_fetch_assoc($q_users)){ $usersIds[] = $r_users['id']; } $usersIds = array_unique($usersIds); //var_dump($usersIds); $mango->set_users($usersIds); $page = $data->page; $limit = $data->limit; $pageLimit = ($page-1)*$limit.', '.$limit; $pageLimitPg = 'LIMIT '.$limit.' OFFSET '.($page-1)*$limit; $users = get_users($agencyId, $type_phone); $reason = get_disconnect_reason(); $date_from = $data->date_from." 00:00:00"; $data_to = $data->date_to." 23:59:59"; $source = $data->source; $where = "agency_id='".$agencyId."' and start >= ".strtotime($date_from)." and start <= ".strtotime($data_to); $emp = $data->user; $response['tr'] = $type_phone; if(!empty($emp)){ // echo $r_tel['type']."\n"; if($type_phone == 'beeline'){ $where .= " AND (from_extension like '".$emp."%' OR to_number like '".$emp."%' OR to_extension like '".$emp."%' OR from_number like '".$emp."%')"; } else { $where .= " AND (from_extension = '".$emp."' OR to_number='".$emp."' OR to_extension = '".$emp."' OR from_number='".$emp."')"; } } $status = $data->status; if($status == 'accepted'){ $where .= " AND answer != 0"; } else if($status == 'skip'){ $where .= " AND answer = 0"; } $duration = $data->duration; switch($duration) { case 'less': if($is_pg){ $where .= " AND (finish - start) < 60"; } else { $where .= " AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) < 60"; } break; case '1to3min': if($is_pg){ $where .= " AND ((finish - start) >= 60 AND (finish - start) <= 180)"; } else { $where .= " AND (TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) >= 60 AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) <= 180)"; } break; case '3to10min': if($is_pg){ $where .= " AND ((finish - start) > 180 AND (finish - start) <= 600)"; } else { $where .= " AND (TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) > 180 AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) <= 600)"; } break; case '10to30min': if($is_pg){ $where .= " AND ((finish - start) > 600 AND (finish - start) <= 1800)"; } else { $where .= " AND (TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) > 600 AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) <= 1800)"; } break; case 'more': if($is_pg){ $where .= " AND (finish - start) > 1800"; } else { $where .= " AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) > 1800"; } break; case 'individual': $durationFrom = $data->individual_unit === 'minutes' ? (int)$data->individual_from * 60 : (int)$data->individual_from; $durationTo = $data->individual_unit === 'minutes' ? (int)$data->individual_to * 60 : (int)$data->individual_to; if($is_pg){ if ($durationFrom) { $where .= " AND (finish - start) >= $durationFrom"; } if ($durationTo) { $where .= " AND (finish - start) <= $durationTo"; } } else { if ($durationFrom) { $where .= " AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) >= $durationFrom"; } if ($durationTo) { $where .= " AND TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(start), FROM_UNIXTIME(finish)) <= $durationTo"; } } break; } $is_call_record = (int)$data->is_call_record; if($is_call_record > 0){ $where .= " AND records <> '' AND records <> '[]' AND records <> '[\"\"]' AND records is not null"; } $call_number = $data->call_number; if(!empty($call_number)){ $where .= " AND entry_id like '%".str_replace('+','',$call_number)."%'"; } $in_call_number = $data->in_call_number; if(!empty($in_call_number)){ $where .= " AND from_number like '%".str_replace('+','',$in_call_number)."%'"; } if($source != 'all'){ $where .= " AND to_extension like '%".str_replace('+', '', $source)."%'"; } $in_out = $data->in_out; if(!empty($in_out)){ if($in_out == 'in'){ $where .= " AND from_extension = ''"; } else if($in_out == 'out') { $where .= " AND from_extension != ''"; } } $total = 0; //if(!isset($_SESSION['agency_ids'])){ $user_id = null; // if(isset($data->user_id)) $user_id = $data->user_id; if(isset($_SESSION['id'])){ $agencyIDS = get_users_id($user_id); } else { $agencyIDS = $usersIds; } $search_user_main = null; if(isset($_SESSION['id'])){ $search_user_main = $_SESSION['id']; if($search_user_main == 5238){ $search_user_main = 7384; } } else if(!is_null($user_id)){ $search_user_main = $user_id; } if(is_null($search_user_main)) die("Не найден пользователь"); /* $_SESSION['agency_ids'] = $agencyIDS; } else { $agencyIDS = $_SESSION['agency_ids']; }*/ // if($agencyId == 9588){ $sqlTotal = "SELECT count(*) as total FROM `mango_calls` as mc WHERE ".$where." and (if((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1)>0,(SELECT user_id FROM user_call WHERE call_id = mc.id limit 1), ".$agencyId.")) in (".implode(',',$agencyIDS).")"; // echo $sqlTotal; $qTotal = mysql_query($sqlTotal); $rTotal = mysql_result($qTotal, 0); $total = (int)$rTotal; // } //var_dump($is_pg); if($is_pg){ $sqlTotal = "SELECT count(*) as total FROM mango_calls as mc WHERE ".$where." and (agency_id = {$search_user_main} or ((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1) in (".implode(',',$agencyIDS).")))"; //echo $sqlTotal; $qTotal = $pdopg->query($sqlTotal); $rTotal = $pdopg->result($qTotal, 0); $total = (int)$rTotal; } $_SESSION['calls_query'] = "SELECT * FROM mango_calls as mc WHERE ".$where." and (if((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1)>0,(SELECT user_id FROM user_call WHERE call_id = mc.id limit 1), ".$agencyId.")) in (".implode(',',$agencyIDS).") ORDER BY start DESC"; if($is_pg){ $_SESSION['calls_query_pg'] = "SELECT * FROM mango_calls as mc WHERE ".$where." and (agency_id = {$search_user_main} or ((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1) in (".implode(',',$agencyIDS)."))) ORDER BY start DESC "; } $sql = "SELECT * FROM mango_calls as mc WHERE ".$where." and (if((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1)>0,(SELECT user_id FROM user_call WHERE call_id = mc.id limit 1), ".$agencyId.")) in (".implode(',',$agencyIDS).") ORDER BY start DESC LIMIT ".$pageLimit; //echo $sql; if($is_pg){ $sql = "SELECT * FROM mango_calls as mc WHERE ".$where." and (agency_id = {$search_user_main} or ((SELECT user_id FROM user_call WHERE call_id = mc.id limit 1) in (".implode(',',$agencyIDS)."))) ORDER BY start DESC ".$pageLimitPg; $qpg = $pdopg->query($sql); } else { $q = mysql_query($sql); } // echo $sql; $i = 0; $list = array(); $calls = array(); if($is_pg){ while ($call = $pdopg->fetch_assoc($qpg)) { $calls[] = $call; } } else { while ($call = mysql_fetch_assoc($q)) { $calls[] = $call; } } if($agencyId == 7384){ $source = array(); $sql_s = "SELECT a.phone, a.adv_id, s.source FROM advertising_phone as a LEFT JOIN advertising_sources as s on a.adv_id = s.id"; //echo $sql_s; $q_s = mysql_query($sql_s); while($r_s = mysql_fetch_assoc($q_s)){ $source[$r_s['phone']] = $r_s['source']; } } $type = 'mango'; foreach($calls as $r) { $type = 'mango'; $list_temp = array(); $list_temp['start'] = date('d.m.Y H:i:s', $r['start']); $fill = '#FF3838'; //$list_temp['from_number'] = $fill "color:#4CAF50;">'; if($r['answer'] > 0){ $fill = '#4CAF50'; } if(!empty($r['from_extension'])){ $list_temp['from_number'] = ' '; } else { $list_temp['from_number'] = ' '; } $client_id = 0; $fio_client = ''; $client = $mango->find_client_info($mango->ver_phone($r['from_number'])); if(!empty($client)){ $client_id = (int)$client['id']; $fio_client = ' '.trim($client['fio']); if(strpos($fio_client, 'Клиент') !== false || strpos($fio_client, 'Новый') !== false){ $fio_client = ''; } } $from_number = $r['from_number']; if($type_phone == 'beeline'){ if(strpos($r['from_number'],'@') !== false){ $part_user_from = explode('@', $r['from_number']); if(isset($part_user_from[0])){ $from_number = $part_user_from[0]; } } } if($client_id != 0){ // hide_client_contacts: подменяем телефон + ФИО клиента в HTML. $fromNumberDisplay = $hideContactsTel ? mask_client_phone($r['from_number']) : $r['from_number']; $fioClientDisplay = $hideContactsTel ? mask_fio_if_contains_phone(trim($fio_client)) : $fio_client; if ($hideContactsTel && $fioClientDisplay !== '' && $fioClientDisplay[0] !== ' ') { $fioClientDisplay = ' ' . $fioClientDisplay; } $list_temp['from_number'] .= ' '.$fromNumberDisplay.$fioClientDisplay.' '; } else if(isset($users[$from_number])){ $list_temp['from_number'] .= ''.$users[$from_number]['fio'].''; } else { // Неопознанный внешний номер — для скрытых контактов тоже маскируем $fromNumberDisplay = $hideContactsTel ? mask_client_phone($r['from_number']) : $r['from_number']; $list_temp['from_number'] .= ''.$fromNumberDisplay.''; } $entryIdDisplay = $hideContactsTel ? mask_client_phone($r['entry_id']) : $r['entry_id']; $list_temp['entry_id'] = ''.$entryIdDisplay.''; $client_id = 0; $client = $mango->find_client_info($mango->ver_phone($r['entry_id'])); $fio_client = ''; if(!empty($client)){ $client_id = (int)$client['id']; $fio_client = ' '.trim($client['fio']); if(strpos($fio_client, 'Клиент') !== false || strpos($fio_client, 'Новый') !== false){ $fio_client = ''; } } if($client_id != 0){ $fioClientDisplay = $hideContactsTel ? mask_fio_if_contains_phone(trim($fio_client)) : $fio_client; if ($hideContactsTel && $fioClientDisplay !== '' && $fioClientDisplay[0] !== ' ') { $fioClientDisplay = ' ' . $fioClientDisplay; } $list_temp['entry_id'] = ' '.$entryIdDisplay.$fioClientDisplay.' '; } else { $entry_id = $r['entry_id']; if($type_phone == 'beeline'){ if(strpos($r['entry_id'],'@') !== false){ $part_user_entry_id = explode('@', $r['entry_id']); if(isset($part_user_entry_id[0])){ $entry_id = $part_user_entry_id[0]; } } } if(isset($users[$entry_id])){ $list_temp['entry_id'] = ''.$users[$entry_id]['fio'].''; } } if($agencyId == 7384){ $entry_id = $mango->ver_phone($r['entry_id']); $list_temp['source'] = ''; if(isset($source[$entry_id])){ $list_temp['source'] = $source[$entry_id]; } } // hide_client_contacts: дефолт — маска номера; если ниже найдём сотрудника в users, перезапишем на ФИО. $list_temp['to_number'] = $hideContactsTel ? mask_client_phone($r['to_number']) : $r['to_number']; $to_number = $r['to_number']; if($type_phone == 'beeline'){ if(strpos($r['to_number'],'@') !== false){ $part_user_to = explode('@', $r['to_number']); if(isset($part_user_to[0])){ $to_number = $part_user_to[0]; } } } if(isset($users[$to_number])) { $list_temp['to_number'] = ''.$users[$to_number]['fio'].''; } //Проверка переадресации if($r['operator_id'] == 2 && $r['operator_call_id'] > 0){ $sql_call = "SELECT id FROM call_events WHERE uuid_call_id=$r[operator_call_id]"; $q_call = mysql_query($sql_call); if(mysql_num_rows($q_call) > 0){ $r_call = mysql_fetch_assoc($q_call); $sql_red = "SELECT * FROM call_events_redirect WHERE call_id = $r_call[id]"; $q_red = mysql_query($sql_red); if(mysql_num_rows($q_red) > 0){ $r_red = mysql_fetch_assoc($q_red); $user_red = mysql_fetch_assoc(mysql_query("SELECT fio FROM users WHERE id=$r_red[user_id]")); if($user_red){ $list_temp['to_number'] = ''.$users[$r['to_number']]['fio'].' → '.$user_red['fio'].''; } } } } $list_temp['connect'] = $reason[$r['disconnect_reason']]; /* try{ $list_temp['connect'] = ' '.$reason[$r['disconnect_reason']]; } catch (Exception $e){} if($r['answer'] > 0){ $list_temp['connect'] = ' '.$reason[$r['disconnect_reason']]; }*/ $list_temp['answer'] = $r['answer']; $list_temp['time'] = int_to_time((int)$r['finish'] - (int)$r['start']); $list_temp['records'] = []; $records = explode(",", str_replace(["[","]"], "", $r['records'])); if($r['line_number'] == 'telphin'){ $type = 'telphin'; $records = json_decode($r['records']); } else if($r['line_number'] == 'beeline'){ $type = 'beeline'; $records = json_decode($r['records']); } else if($r['line_number'] == 'megafon'){ $type = 'megafon'; $records = json_decode($r['records']); } else if($r['line_number'] == 'mts'){ $type = 'mts'; $records = json_decode($r['records']); } else if($r['line_number'] == 'tele2'){ $type = 'tele2'; $records = json_decode($r['records']); } else if($r['line_number'] == 'alloincognito'){ $type = 'alloincognito'; $records = json_decode($r['records']); //var_dump($records); } $list_temp['type'] = $type; //var_dump($records); if(!empty($records)){ foreach ($records as $record) { if(!empty($record)){ if($type == 'megafon'){ $temp_type = 'mega'; $path = $temp_type.'/'.$record.'.mp3'; if(file_exists($_SERVER['DOCUMENT_ROOT'].'/server/'.$path)){ $list_temp['records'][] = "/server/".$path; } else { $href = 'https://voice.joywork.ru/'.$temp_type.'/'.$record.'.mp3'; $Headers = @get_headers($href); if(strpos($Headers[0],'200')) { $list_temp['records'][] = $href; } } } else if($type == 'mts'){ $path = $type.'/'.$agencyId.'/'.$record.'.mp3'; if(file_exists($_SERVER['DOCUMENT_ROOT'].'/server/'.$path)){ $list_temp['records'][] = "/server/".$path; } else { $href = 'https://voice.joywork.ru/'.$type.'/'.$agencyId.'/'.$record.'.mp3'; $Headers = @get_headers($href); if(strpos($Headers[0],'200')) { $list_temp['records'][] = $href; } } } else if($type == 'tele2'){ $date = date('Ymd', $r['start']); $path = $type.'/'.$agencyId.'/'.$date.'/'.$record.'.mp3'; if(file_exists($_SERVER['DOCUMENT_ROOT'].'/server/'.$path)){ $list_temp['records'][] = "/server/".$path; } else { $href = 'https://voice.joywork.ru/'.$type.'/'.$agencyId.'/'.$date.'/'.$record.'.mp3'; $Headers = @get_headers($href); if(strpos($Headers[0],'200')) { $list_temp['records'][] = $href; } } } else if($type == 'alloincognito'){ $temp_type = 'allo'; $path =$temp_type.'/'.$agencyId.'/'.$record.'.mp3'; // echo $path; if(file_exists($_SERVER['DOCUMENT_ROOT'].'/server/'.$path)){ $list_temp['records'][] = "/server/".$path; } else { $href = 'https://voice.joywork.ru/'.$temp_type.'/'.$agencyId.'/'.$record.'.mp3'; $Headers = @get_headers($href); if(strpos($Headers[0],'200')) { $list_temp['records'][] = $href; } } } else { $path = $type.'/'.$record.'.mp3'; if(file_exists($_SERVER['DOCUMENT_ROOT'].'/server/'.$path)){ $list_temp['records'][] = "/server/".$path; } else { $href = 'https://voice.joywork.ru/'.$type.'/'.$record.'.mp3'; $Headers = @get_headers($href); if(strpos($Headers[0],'200')) { $list_temp['records'][] = $href; } } } } } } $list_temp['disconnect_reason'] = $r['disconnect_reason']; $list[] = $list_temp; } $users_vue = array(); foreach ($users as $key => $user) { $temp_fio = trim($user['fio']); if($agencyId == 7864){ if(strpos($key, 'mega') !== false){ $temp_fio .= " (Мегафон)"; } else { $temp_fio .= " (Билайн)"; } } //Не нужно тут менять это не таблица users $users_vue[] = array('code' => $key, 'fio' => $temp_fio); } $response['list'] = $list; $response['line_number'] = $type; $response['users'] = $users_vue; $response['agency_id'] = $agencyId; $response['total'] = $total; echo json_encode($response); exit; } if($request == 'get_source'){ $sql = "SELECT a.phone, a.adv_id, s.source FROM advertising_phone as a LEFT JOIN advertising_sources as s on s.id = a.adv_id"; $q = mysql_query($sql); $sourse_arr = array(); $sourse_arr[] = array('code'=>'all', 'name'=>''); while($r = mysql_fetch_assoc($q)){ $sourse_arr[] = array('code'=>$r['phone'], 'name'=>$r['source']); } echo json_encode($sourse_arr); exit; } if($request == 'get_source_new'){ $agency_id = (int)$data->agency_id; $sql = "SELECT a.phone, a.adv_id, s.source FROM advertising_phone as a LEFT JOIN advertising_sources as s on s.id = a.adv_id WHERE s.user_id = {$agency_id}"; $q = mysql_query($sql); $sourse_arr = array(); //$sourse_arr[] = array('value'=>'all', 'title'=>''); while($r = mysql_fetch_assoc($q)){ $sourse_arr[] = array('value'=>$r['phone'], 'title'=>$r['source']); } echo json_encode($sourse_arr); exit; }