Здравствуйте. У меня была проблема: выполнялось 20 запросов к api vk:
$select_info = "SELECT a_id, post_id, date, admin FROM vk_post ORDER BY post_id DESC";
$result = mysqli_query($connection, $select_info);
while ($row = mysqli_fetch_array($result)) {
$get_adm_name = $VkApi->api("users.get", [
"access_token" => ACCESS_TOKEN,
"user_ids" => $row["admin"]
]);
$admin = $get_adm_name["response"][0]["first_name"] . " ". $get_adm_name["response"][0]["last_name"];
?>
<tr>
<td><?=$row["a_id"]?></td>
<td><?=$row["date"]?></td>
<td><a href="<?="https://vk.com/wall-26363301_" . $row["post_id"];?>">This</a></td>
<td><?=$admin?></td>
</tr>
Это не есть хорошо, и мне посоветовали сделать массив за пределами цикла и работать с ним:
$admin_id = [
1id => "1AdminName",
2id => "2AdminName",
3id => "3AdminName"
];
Но не пойму как. Подскажите, пожалуйста
Нужно вынести все ID за предел цикла и сделать 1 запрос к ВК
$result = mysqli_query($connection, $select_info);
$rows = array();
while ($row = mysqli_fetch_array($result)) {
$rows[] = $row;
}
foreach ($rows as $row) $admins_id[] = $row["admin"];
$get_adm_names = $VkApi->api("users.get", [
"access_token" => ACCESS_TOKEN,
"user_ids" => implode(',', $admins_id)
]);
?>
Думаю идея ясна
Сборка персонального компьютера от Artline: умный выбор для современных пользователей