2016-07-12 16 views
1

私はSalesforceデータベースにクエリするためにSOAPを使用しており、結果を照会して表示することができます。しかし、私は今関係クエリ(サブクエリ)を使用したい。私はクエリから結果を得ることができますが、PHPでサブクエリの結果を表示するのに苦労します。PHP SOAP Salesforce Subクエリ

私は次のことをやっている:

$Query = "SELECT Account.Name, (SELECT Contact.Name, Contact.accountId FROM contacts) FROM Account WHERE Name Like '%Test Client%'"; 
    $Response = $SforceConnection->query($Query); 

    foreach ($Response->records as $RecordSet) { 
    echo "$RecordSet->Name."<br />"; 
    } 

私はちょうど良い会社名を表示するが、Contact.NameとContact.accountIdなどのサブクエリデータを表示するのに苦労することができます。私はこれらの2つのフィールドを表示する正しい構文がわからない。

私はSQLを実行すると、私は次の配列安息を得る:

["queryLocator"]=> NULL ["done"]=> bool(true) ["records"]=> array(1) { 
    [0]=> object(stdClass)#10 (3) { 
     ["Id"]=> NULL ["Contacts"]=> object(stdClass)#11 (4) { 
      ["done"]=> bool(true) ["queryLocator"]=> NULL ["records"]=> array(1) { 
       [0]=> object(stdClass)#12 (3) { 
        ["Id"]=> NULL ["AccountId"]=> string(18) "0015800000UU25zAER" ["Name"]=> string(16) "Test Users" } 
       } 

      ["size"]=> int(1) 
     } ["Name"]=> string(15) "Test Client" 
    } 
} 

答えて

0

あなたは次の方法で連絡先にアクセスすることができるはずです。

if (isset($RecordSet->Contacts) && isset($RecordSet->Contacts->records) && !empty($RecordSet->Contacts->records)) { 
    foreach($RecordSet->Contacts->records as $contact) { 
    echo $contact->Name; 
    } 
}