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; }
$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); }