BigQueryを使用して簡単なページネーションメカニズムを実装しようとしています。それが働いているようBigQuery +トークンによるページ分割+ PHPクライアントが動作しない
function query($sql, $max_results = null, $page_token = null) {
$request = new Google_Service_Bigquery_QueryRequest();
$request->setQuery($sql);
$response = $this->service->jobs->query(PROJECT_ID, $request);
$job_id = $response->getJobReference()->getJobId();
$optParams = ($max_results) ? array(
'pageToken' => $page_token,
'maxResults' => $max_results,
) : array();
$response = $this->service->jobs->getQueryResults(PROJECT_ID, $job_id, $optParams);
if (!$response->getJobComplete()) {
return null;
}
$rowsJson = $this->rowsJson($response->getRows());
if ($max_results) {
return array(
"rows" => $rowsJson,
"token" => $response->getPageToken()
);
}
return $rowsJson;
}
query("select url, CEIL(AVG(total)) as avg, count(id) as count from $table_id " .
"where created > $date_start and created < $date_end group by url order by $order_by desc",
10, $page_token
);
最初のクエリは思わ:
は、これが私のクエリ機能です。 10の結果とトークンしか返しません(10以上の結果があります)。しかし、私が得たトークンで後で関数を呼び出すと、結果は空になります...なぜ私にはわかりません。私はあなたがstartIndex
代わりのトークンを使用して、それを解決し、この
ありがとう! –