Как сделать зацикленные вызовы функций для нумерации страниц?

Просто примечание для разработчиков php (у меня нет необходимых точек stackoverflow, чтобы опубликовать это как комментарий) ... автоматическое (и молчащее) преобразование в TINYINT означает, что php получает значение из столбца BOOLEAN как " 0 "или" 1 ", а не ожидаемый (по мне) true / false.

Разработчик, который смотрит на SQL, используемый для создания таблицы, и видит что-то вроде:" some_boolean BOOLEAN NOT NULL DEFAULT FALSE , «может разумно ожидать увидеть истинные / ложные результаты, когда извлекается строка, содержащая этот столбец. Вместо этого (по крайней мере, в моей версии PHP) результат будет «0» или «1» (да, строка «0» или строка «1», а не int 0/1, спасибо php).

Это нит, но достаточно, чтобы вызвать единичные тесты.

1
задан Robert Andrews 17 January 2019 в 13:37
поделиться

1 ответ

Во многом благодаря ответу @ anthony на подобный вопрос здесь , у меня, кажется, есть некоторый рабочий код ...

  // Prepare Article URLs list as an array
  $article_urls = array();

  // Call Airtable records in pages of 100 max
  do {

        // Offset is either inherited from last page's results, or is nothing
        $offset = $articles['offset'] ?: "";

        // Make get request, store result in array
        $articles = get_airtable_records($offset);

        // For each URL found in Airtable
        foreach($articles['records'] as $record){
           $url = $record['fields']['Published url'];
           // Add to our array list
           if (!empty($url)) {
              array_push($article_urls, $url);
           }
        }

  } while(!empty($articles['offset'])); // If there's an offset value (ie. starting record of next page), do again

  // Output URL list for check
  echo '<pre>';
  print_r($article_urls);
  echo '</pre>';

Объяснение выглядит следующим образом:

Используйте петлю do while. В начале этого установите offset либо значение, унаследованное от предыдущего запуска, либо ничего.

Моя get_airtable_records функция уже ограничивала присутствие или отсутствие offset в вызове API следующим образом, который добавляет строку запроса offset к URL-адресу для следующего вызова API, если таковой имеется. .

  if (!empty($offset)) {
    $q_offset = '&offset='.$offset;
  }

Я проверил это, и он дал мне все 137 результатов с двух страниц в моем массиве $article_urls. Я не тестировал его с более чем двумя страницами результатов.

0
ответ дан Robert Andrews 17 January 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: