Вот кусок кода. Причина заключается в том что не правильно подсчитываться значения $disp_to.
//Визначаю кількість сторінок зі знайденими результатами $total_pages
$arts_per_page=10;
$i= $total_pages1%$arts_per_page;
if ($i==0) {$total_pages=$total_pages1/$arts_per_page;} else {$total_pages=(($total_pages1-$i)/$arts_per_page)+1;}
$disp_from=(ceil($page1/$arts_per_page)-1)*$arts_per_page+1;//Мне кажется причина кроется в неправильном округлений
$disp_to=$disp_from+$arts_per_page-1;
if ($disp_to>$total_pages1) {$disp_to=$total_pages1;} //По яку статтю
И цикл вывода
for ($i=$disp_from; $i<=$disp_to; $i++)
{
if ($page1==$i)
{echo "<span class=\"str_link\">";
echo "".$i."";
echo "</span>";}
else
{echo "<span class=\"str_links\">";
echo '<a href="'.$filereferer.$param.'page='.$i.'">'.$i.'</a>';
echo "</span>";
}
Пробовал менять функцию округления! Но в итоге ничего не получилось! :(
Спустя 1 час, 49 минут, 7 секунд (12.12.2010 - 21:12) inpost написал(а):
Немного не нравится вид этот, можно было бы красивее. А вот теперь по теме:
в for добавляешь условие,
if(empty($i)) break; // брейк прервёт цикл for полностью!
в for добавляешь условие,
if(empty($i)) break; // брейк прервёт цикл for полностью!
Спустя 30 минут, 38 секунд (12.12.2010 - 21:42) antoneskoV написал(а):
Спасибо за быстрый ответ! Попробовал не получилось! Я так понимаю у нас $i формируется до тех пор пока $i<=$disp_to и по этой причине использовать if(empty($i)) break; по отношению к $i не принесет результата.
Спустя 3 минуты, 37 секунд (12.12.2010 - 21:46) inpost написал(а):
Покажи код, куда вставил ты его?
Спустя 17 минут, 21 секунда (12.12.2010 - 22:03) antoneskoV написал(а):
for ($i=$disp_from; $i<=$disp_to; $i++)
{
if(empty($i)) break;
if ($page1==$i)
{echo "<span class=\"str_link\">";
echo "".$i."";
echo "</span>";}
else
{echo "<span class=\"str_links\">";
echo '<a href="'.$filereferer.$param.'page='.$i.'">'.$i.'</a>';
echo "</span>";
}
Так я правильно понял!? :huh:
Спустя 4 минуты, 10 секунд (12.12.2010 - 22:07) inpost написал(а):
да, но одна из переменных должна быть пустой, либо $filereferer, либо param. Посмотри по коду, что будет пустой - к той и примени проверку на empty.
Спустя 40 минут, 57 секунд (12.12.2010 - 22:48) antoneskoV написал(а):
Эти параметры постоянные и отвечают за путь в ссылке, меняется только page='.$i.'
Понимаешь почему то при не полном заполнений страницы $disp_to например равняется 2.71428571429 , при количестве новостей 6.
Выкладываю весь код
Понимаешь почему то при не полном заполнений страницы $disp_to например равняется 2.71428571429 , при количестве новостей 6.
Выкладываю весь код
function CalcPages($arts,$page,$arts_per_page)
{
//Визначаю кількість сторінок зі знайденими результатами $total_pages
if (isset($arts))
{
$i=count($arts)%$arts_per_page;
if ($i==0) {$total_pages=count($arts)/$arts_per_page;} else {$total_pages=((count($arts)-$i)/$arts_per_page)+1;}
}
$disp_from=$arts_per_page*($page-1)+1; //З якої статті виводити на сторінку
$disp_to=$disp_from+$arts_per_page-1;
if (isset($arts))
{
if ($disp_to>count($arts)) {$disp_to=count($arts);} //По яку статтю
}
return array($disp_from, $disp_to, $total_pages);
}
function ShowNavigation($total_pages1, $page1, $filereferer)
{
if ($total_pages1==1){return;}
//Визначаю кількість сторінок зі знайденими результатами $total_pages
$arts_per_page=10;
$i= $total_pages1%$arts_per_page;
if ($i==0) {$total_pages=$total_pages1/$arts_per_page;} else {$total_pages=(($total_pages1-$i)/$arts_per_page)+1;}
$disp_from=(ceil($page1/$arts_per_page)-1)*$arts_per_page+1;
$disp_to=$disp_from+$arts_per_page-1;
if ($disp_to>$total_pages1) {$disp_to=$total_pages1;} //По яку статтю
if (strpos($filereferer,"?")>1)
{$param="&";}
else
{$param="?";}
if ($disp_from>1) {
echo "<span class=\"str_links\">";
echo '<a href="'.$filereferer.$param.'page='.($disp_from-1).'"><<< </a>';}else{
echo "</span>";
}
for ($i=$disp_from; $i<=$disp_to; $i++)
{
if ($page1==$i)
{echo "<span class=\"str_link\">";
echo "".$i."";
echo "</span>";}
else
{echo "<span class=\"str_links\">";
echo '<a href="'.$filereferer.$param.'page='.$i.'">'.$i.'</a>';
echo "</span>";
}
if ($i<$total_pages1)
{echo " ";}
}
if ($disp_to<$total_pages1){
echo "<span class=\"str_links\">";
echo '<a href="'.$filereferer.$param.'page='.($disp_to+1).'"> >>></a>';}else{
echo "</span>";
}// послед стр
}
Спустя 3 минуты, 21 секунда (12.12.2010 - 22:52) antoneskoV написал(а):
Мне кажется проблема в этом месте.
$disp_from=(ceil($page1/$arts_per_page)-1)*$arts_per_page+1;
$disp_to=$disp_from+$arts_per_page-1;