2017-02-14 5 views
1

Я использую PHP для извлечения данных из CRM-центра. Я нахожусь в вызове API перспективы_find, который позволяет мне возвращать список идентификаторов проспектов, а также JSON-кодированный объект перспективы-перспективы каждой перспективы. Я могу отделить перспективы идентификатор, но у меня возникают проблемы с получением вплоть до следующего уровня даты, чтобы извлечь реальную перспективу данные, что мне нужноПопытка перейти на следующий уровень в json-массиве в php

Этот мой код, который называют АНИ

$find_prospects = array(
    'username' => $LLAPI_USER, 
    'password' => $LLAPI_PASS, 
    'method' => 'prospect_find', 
    'campaign_id' => '272', 
    'start_date' => $startDate, 
    'start_time' => '00:00:00', 
    'end_date' => $endDate, 
    'end_time' => '23:59:59', 
    'return_type' => 'prospect_view' 
); 
$ch = curl_init($limelight_crm_url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($find_prospects)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $retOrder = curl_exec($ch); 
curl_close($ch); 
parse_str($retOrder); 
echo $retOrder; 
if ($retOrder === false) { 
    echo "No prospects to extract"; 
} else { 
    //var_dump ($data); 
    $prospectData = json_decode($data[0]); 
    echo $prospectData; 
    $counter = 0; 
    $all_prospect_counter = 0; 
    $prospectids = Array(); 
    $total_prospect = count(explode(',', $prospect_ids)); 
    foreach (explode(',', $prospect_ids) AS $prospectid) { 
    $prospectData = json_decode($data); 
//  print_r ($prospectData); 
    echo $prospectData[$prospectid]->$response_code; 

//  $arr = explode(',', $prospect_ids); 
//  print($arr[$counter]->{"response_code"}); 

    $counter++; 
} 

усеченный ответ находится здесь:

response_code=100&total_prospects=1182&prospect_ids=3658707,&data= 
{"3658707": 
    {"response_code":"100", 
    "campaign_id":"272", 
    "first_name":"XXXX", 
    "last_name":"XXXX", 
    "address":"XX", 
    "address2":"", 
    "city":"XXXX", 
    state":"XX", 
    "state_id":"XX", 
    "zip":"XXXXX", 
    "country":"XX", 
    "phone":"XXXX", 
    "email":"XXXXXX", 
    "ip_address":"XXXXXX", 
    "date_created":"2017-02-12+00%3A04%3A07", 
    "affiliate":"XX", 
    "sub_affiliate":"XXXX" 
} 

Если кто-то может помочь мне указать направление в правильном направлении, я был бы признателен. Спасибо

+0

я решил мою проблему: код функционирования приведен ниже Моей первой проблемы в том, что я не устанавливал мой JSon декодирования в массив, поэтому я получал не ошибку объекта. Моя вторая проблема заключалась в том, что я не перебирал правильные значения массива. И, наконец, я не смог сохранить фактический идентификатор внутри моего массива. Как я узнал, значение id должно оставаться в нем исходным массивом, а затем я могу импортировать его с помощью счетчика. – dlavely

+0

$ перспективаData = json_decode ($ data, true); $ counter = 0; $ total_prospect = count (explode (',', $ prospect_ids)); $ arr = explode (',', $ prospect_ids); foreach ($ forwardData as $ перспектива) { $ first_name \t = $ перспектива ['first_name']; $ last_name \t \t = $ перспектива ['last_name']; $ адрес \t \t = $ перспектива ['адрес']; $ город \t \t \t = $ перспектива ['город']; $ state \t \t \t = $ перспектива ['state']; $ zip \t \t \t = $ перспектива ['zip']; $ email \t \t \t = $ перспектива ['email']; $ date_created \t = $ перспектива ['date_created']; $ campaign_id \t = $ перспектива ['campaign_id']; // Заявление sql здесь – dlavely

ответ

0
 $prospectData = json_decode($data, true); 
     $counter = 0; 
     $all_prospect_counter = 0; 
     $prospectids = Array(); 
     $total_prospect = count(explode(',', $prospect_ids)); 
     $arr = explode(',', $prospect_ids); 
     foreach($prospectData as $prospect){ 
      $first_name  = $prospect['first_name']; 
      $last_name  = $prospect['last_name']; 
      $address  = $prospect['address']; 
      $city   = $prospect['city']; 
      $state   = $prospect['state']; 
      $zip   = $prospect['zip']; 
      $email   = $prospect['email']; 
      $date_created = $prospect['date_created']; 
      $campaign_id = $prospect['campaign_id']; 


      $query_pop_temp = "INSERT INTO `hydra`.`Prospects` (`ProspectID`,`FirstName`,`LastName`,`StreetAddress`, `City`,`State`, `zip`,`Emailaddress`,`Created`,`Campaign`, `ListID`) 
       VALUES ($arr[$counter], '$first_name', '$last_name', '$address', '$city', '$state', '$zip', '$email', '$date_created', $campaign_id, 'CxBkt4')"; 
      $result_pop_temp = $mysqli->query($query_pop_temp); 
     $counter++; 
     } 
Смежные вопросы