У меня есть следующий сценарий:PHP скрипт петли не работает
<?php
ini_set('max_execution_time', 0);
include("../includes/mysqli.php");
$pointsvar = 50000;
$inserts = 0;
$locationvar = 32000006;
while($locationvar <= 32000260){
while($pointsvar >= 20000){
$url = "http://185.112.249.77:9999/Api/Search?search=&level=0&min=1&max=50&points=$pointsvar&loc=$locationvar";
$jsondata = file_get_contents($url);
$data = json_decode($jsondata, true);
$in=$data['clanList'];
$results = $data['results']; //max is 64
$i = 0;
while($i + 1 <= $results){
$clanid = $in[$i]['id'];
$clanname = mysqli_real_escape_string($con,$in[$i]['name']);
$clanplayerCount = $in[$i]['playerCount'];
$clanwarswon = $in[$i]['warsWon'];
$clanwarslost = $in[$i]['warsLost'];
$clanwarstied = $in[$i]['warsTied'];
$clanLocation = mysqli_real_escape_string($con,$in[$i]['clanLocation']);
$clanlevel = $in[$i]['level'];
$score = $in[$i]['score'];
$sql = "INSERT INTO activeclans(id, name, location, playercount, clanlevel, warswon, warslost, warstied, score)
VALUES('$clanid', '$clanname', '$clanLocation', '$clanplayerCount', '$clanlevel', '$clanwarswon', '$clanwarslost', '$clanwarstied', $score)";
mysqli_query($con, $sql);
$i++;
$inserts++;
}
$pointsvar = $pointsvar-500;
sleep(1);
}
$locationvar++;
sleep(1);
}
echo "Inserted $inserts";
?>
Когда я запускаю его я жду его, чтобы пройти через каждое место и в каждом месте я ожидаю, что это -500 от $pointsvar
до тех пор, пока не достигнет 20000. Он работал до тех пор, пока я не перешел через каждое место в замкнутом цикле, и теперь он просто выдает Inserted 0
Я увеличил максимальное время выполнения, так как это может занять время автономной работы. Этот скрипт будет запускаться в cron каждый день или неделю.
Ожидаемый результат будет Inserted
и очень очень очень большое число ..
Спасибо за любую помощь вы можете предоставить: D
Какая отладка вы сделали. Если он говорит «Inserted 0», то он не входит в ваш третий цикл while. Проверьте, что ваши переменные возвращают то, что вы ожидаете от них, и что условия фактически проходят. –
@JonStirling работает, когда у меня нет первого цикла while, и у меня просто устанавливается 'locationvar' ... И я уверен, что это правильно, поэтому я смущен. –
Если он работал до того, как вы добавили цикл while ($ locationvar <= 32000260) {', тогда проблема должна быть в этом новом добавленном коде. Удалите его и проверьте, что код все еще работает, а затем снова добавьте петлю местоположения. – RiggsFolly