@pixal

Почему записывается данные в базу 2 раза?

Приветствую Вас! У меня такой парсер пользователей из вк на php. Он берет пользователей из вк через API в поиске и пишет в базу

работа с бд
function add_user($user){
$mysqli = db_connect();

$sql = "INSERT INTO ids (profile, first_name, last_name, status)
 VALUES ('".$user['id']."','".$user['first_name']."', '".$user['last_name']."', '0')";
if(!$mysqli->query($sql))
 return $mysqli->error;

}


и как добавляю

$users = 'https://api.vk.com/method/users.search?count=500&offset='.$offset.'&age_from=18&age_to=80&city=953&v=5.80&access_token='. $access_token;
$respons = file_get_contents($users);

$data = json_decode($respons, true);

$countUser = count($data['response']['items']);
$countUser =  $countUser - 1;

while($i <= $countUser){
    $i++;
    $user = $data['response']['items'][$i];
      add_user($user);


}


Подскажите пожалуйста, в чем проблема?
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alexdora
Топ-менеджер
Исправьте знак <= на <
У вас цикл выполняется дважды.
Первый раз в начале т.к
$count < $i
и в самом цикле $i увеличивается на единицу и становится равно $count
Цикл выполняется дальше пока $i не станет больше чем $count

< Меньше чем
<= Меньше и равно чем
> Больше
=> Больше чем
Ответ написан
Комментировать
Exploding
@Exploding
wtf?
О, господи, мои глаза!
Просто используйте foreach.
Как-то так...
$response = file_get_contents('https://api.vk.com/......');
$data = json_decode($response, true);
foreach($data['response']['items'] as $user)
   add_user($user);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы