Тема: Неправильно працює цикл [ Вирішено ]
Що не так в коді
//$_GET["P"] = 3997, $_GET["P"] = 3996
$page=($_GET["P"]+10)/10;
$rounding_page=ceil($page);
$line = ($rounding_page-$page)*10;
/*
$_GET["P"] - номер теми (10 тем на сторінці тому ділиться на 10)
$page - номер сторінки
$rounding_page - округлений до більшого номер сторінки
$line - теми які потрібно пропустити
*/
...
for($i=0,$pos=0;$i<$line;$i++)
echo "<br>",$i,") ",$i," < ",$line," ",$pos=strpos($demo,"<h2><a href=\"",$pos)+30;
результат при $line = 3 ($_GET["P"]=3997)
0) 0 < 3 8505
1) 1 < 3 9904
2) 2 < 3 11504
3) 3 < 3 12864 - цей результат не правильний бо 3 не більше 3
результат при $line = 4 ($_GET["P"]=3996)
0) 0 < 4 8505
1) 1 < 4 9904
2) 2 < 4 11504
3) 3 < 4 12864 - тут все правильно
коли я виконав явне перетворення типів, $line = (int)$line, то результати виходили не правильні, кудись пропала одиниця
$page=($_GET["P"]+10)/10;
$rounding_page=ceil($page);
$line = ($rounding_page-$page)*10;
$line = (int)$line;
/*
$_GET["P"] - номер теми (10 тем на сторінці тому ділиться на 10)
$page - номер сторінки
$rounding_page - округлений до більшого номер сторінки
$line - теми які потрібно пропустити
*/
...
for($i=0,$pos=0;$i<$line;$i++)
echo "<br>",$i,") ",$i," < ",$line," ",$pos=strpos($demo,"<h2><a href=\"",$pos)+30;
$line до перетворення = 4,а після = 3
Що ж не так ?