IncreaseOffsetBy() 공개 메소드

Increases the offset by the {@code amount}.
public IncreaseOffsetBy ( integer $amount ) : StatementBuilder
$amount integer the amount to increase the offset
리턴 StatementBuilder a reference to this object
/**
 * Gets predefined custom targeting key IDs.
 */
function getPredefinedCustomTargetingKeyIds($user)
{
    $customTargetingKeyIds = array();
    // Get the CustomTargetingService.
    $customTargetingService = $user->GetService('CustomTargetingService', 'v201508');
    // Create a statement to get predefined custom targeting keys.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->Where('type = :type')->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT)->WithBindVariableValue('type', 'PREDEFINED');
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get custom targeting keys by statement.
        $page = $customTargetingService->getCustomTargetingKeysByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $customTargetingKey) {
                printf("%d) Custom targeting key with ID %d, name '%s', and display " . "name '%s' was found.\n", $i++, $customTargetingKey->id, $customTargetingKey->name, $customTargetingKey->displayName);
                $customTargetingKeyIds[] = $customTargetingKey->id;
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while ($statementBuilder->GetOffset() < $totalResultSetSize);
    return $customTargetingKeyIds;
}
예제 #2
0
    $user = new DfpUser();
    // Log SOAP XML request and response.
    $user->LogDefaults();
    // Get the ContentService.
    $contentService = $user->GetService('ContentService', 'v201408');
    // Create a statement to select all content.
    $statementBuilder = new StatementBuilder();
    $statementBuilder->OrderBy('id ASC')->Limit(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    // Default for total result set size.
    $totalResultSetSize = 0;
    do {
        // Get content by statement.
        $page = $contentService->getContentByStatement($statementBuilder->ToStatement());
        // Display results.
        if (isset($page->results)) {
            $totalResultSetSize = $page->totalResultSetSize;
            $i = $page->startIndex;
            foreach ($page->results as $content) {
                printf("%d) Content with ID %d, name '%s', and status %s was found.\n", $i++, $content->id, $content->name, $content->status);
            }
        }
        $statementBuilder->IncreaseOffsetBy(StatementBuilder::SUGGESTED_PAGE_LIMIT);
    } while ($statementBuilder->GetOffset() < $totalResultSetSize);
    printf("Number of results found: %d\n", $totalResultSetSize);
} catch (OAuth2Exception $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (ValidationException $e) {
    ExampleUtils::CheckForOAuth2Errors($e);
} catch (Exception $e) {
    printf("%s\n", $e->getMessage());
}
 /**
  * @covers StatementBuilder::ToStatement
  * @covers StatementBuilder::IncreaseOffsetBy
  */
 public function testToStatementIncreaseOffsetWithInitialOffset()
 {
     $expectedQueryBefore = 'WHERE a = b ORDER BY a LIMIT 500 OFFSET 10';
     $expectedQueryAfter = 'WHERE a = b ORDER BY a LIMIT 500 OFFSET 40';
     $statementBuilder = new StatementBuilder();
     $statementBuilder->Limit(500)->Offset(10)->Where('a = b')->OrderBy('a');
     $this->assertEquals($expectedQueryBefore, $statementBuilder->ToStatement()->query);
     $statementBuilder->IncreaseOffsetBy(30);
     $this->assertEquals($expectedQueryAfter, $statementBuilder->ToStatement()->query);
 }