1, "pageSize" => 50 ); $i = 0; //$db->onDuplicate(array("dateClose", "summPrice", "purchasePrice"), "orderId"); $remainRequest = 0; do { $pageSize = ($params["page"] * $params["pageSize"] >= $maxQueryLimit) ? floor( ($maxQueryLimit / ($params["page"] * $maxPageSize)) * $maxPageSize) : $maxPageSize; $params["pageSize"] = min($pageSize, $params["pageSize"]); $results = $live->getCounteragents($params); if ( isset($results["error"]) ) { echo "Error: " . $results["error"]["statusCode"] . "\n" . $results["error"]["message"] . "\n"; echo "Page#: " . $params["page"] . "; pageSize: " . $pageSize . "\n"; $remainRequest = $results["error"]["remainRequest"]; } else { foreach($results["data"] as $result) { if(isset($result["id"])) { $id = $db->insert ("counteragents", array( "id" => $result["id"], "name" => $result["name"] )); if (is_array($result["phones"]) && sizeof($result["phones"]) > 0) { foreach ($result["phones"] as $phone) { $id = $db->insert("counteragents_phone", array( "counteragent_id" => $result["id"], "phone_number" => preg_replace("/[^0-9]/", "", $phone) )); } } if(!$id) { echo "Insert failed: " . $db->getLastError() . "\n"; } $i++; } } $remainRequest = $results["remainRequest"]; if (!$dataLimit ) $dataLimit = $results["total"]; echo "Grabbed: " . $i . "[" . $dataLimit . "]; Page: " . $params["page"] . "[" . $params["pageSize"] . "]\n"; $params["page"]++; } echo "Remains: " . $remainRequest ."\n---\n"; if ($remainRequest < 4) sleep($pauseLong); else sleep($pauseBetweenRequests); } while ($remainRequest > 1 && $i < $dataLimit) ?>