Странности с определением ID + цикл PHP
Есть парсер, где в таблицу пишутся ID и прочая ерунда, реализовано так PHP: --------- $i = 0; foreach ($Level3 as $lev3){ $i++; --------- Ну и где-то там далеко внизу идет инсер в базу, где в качестве ID записывается переменная $i
Есть парсер, где в таблицу пишутся ID и прочая ерунда, реализовано так
Ну и где-то там далеко внизу идет инсер в базу, где в качестве ID записывается переменная $i
Так как данных много за раз парсер не сможет все окучить да и бось чтобы не забанили, поэтому решил запускать его по категориям.
В этом случае прихожу к проблеме как определить с какого ID продолжать писать.
Так как опыта еще мало, решил это как смог - так:
Проверил, в итоге перед циклом переменная $i принимает верное значение, но вот в самом цикле начинается магия.
В категории, на которой я тестирую - 4 товара.
Если один раз запустить парсер то
если прописано $i=0; запишется 4 товара как и положено, а если мой говнокод с определением максимального ID - то вообще ничего.
Проверяем дальше - запускаем еще раз.
При $i=0; запишется как и положено еще 4 товара, но !!!
если вставить мой быдлокод с определением ID - var_dump($i); мне покажет
что логично и внушает оптимизм :)) но в базу добавятся еще 8 записей вместо 4. (дубли будут)
Понять этого я не могу, надеюсь на вашу помощь.
PHP код:
$i = 0;
foreach ($Level3 as $lev3){
$i++;
Так как данных много за раз парсер не сможет все окучить да и бось чтобы не забанили, поэтому решил запускать его по категориям.
В этом случае прихожу к проблеме как определить с какого ID продолжать писать.
Так как опыта еще мало, решил это как смог - так:
Цитата:
$id = $db->query("SELECT MAX(`id`) FROM `table`"); $i = array(); foreach ($id as $item) { $i[] = $item; } if(!isset($i[0]['MAX(`id`)'])){ $i=0; } else { $i= (int)$i[0]['MAX(`id`)']; } |
В категории, на которой я тестирую - 4 товара.
Если один раз запустить парсер то
если прописано $i=0; запишется 4 товара как и положено, а если мой говнокод с определением максимального ID - то вообще ничего.
Проверяем дальше - запускаем еще раз.
При $i=0; запишется как и положено еще 4 товара, но !!!
если вставить мой быдлокод с определением ID - var_dump($i); мне покажет
Цитата:
int 4 |
Понять этого я не могу, надеюсь на вашу помощь.