1

I want to split pages to make it more smart and look nice,

I use this code to make Pagination

if (!isset($_GET['page'])){
    $page = 1;
}
else {
    $page = intval($_GET['page']);
}

$numbershownews = 1;
$x = ($page-1)*$numbershownews; 

$select_news_all = $mysqli->query("SELECT id FROM news where FIND_IN_SET('$id_newscats_cat', cats) order by time desc");

$num_news_all = $select_news_all->num_rows;


$cn = $num_news_all/$numbershownews;
$select_news = $mysqli->query("SELECT * FROM news where FIND_IN_SET('$id_newscats_cat', cats) order by time desc limit $x,$numbershownews");
while ($rows_news = $select_news->fetch_array(MYSQL_ASSOC)){

$id_news          = $rows_news ['id'];
$title_news       = $rows_news ['title'];

}

i show pages by this code

<?
$pagenext = $page+1;
$pageprev = $page-1;
?>
<ul>
<li>
<?
if (($page == 1) or ($page == "")){
?>
<i class="fa fa-angle-double-right"></i>
<?
}else{
?>
<a class="link" href="<? echo "{$newurltitle_newscats_cat}-c-{$id_newscats_cat}-p-{$pageprev}.html"; ?>"><i class="fa fa-angle-double-right"></i></a>
<?
}
?>
</li>
<?php
for($i=0; $i<$cn; $i++){
$pagenumber = $i+1;

if($page == $pagenumber){
    echo "<li>{$pagenumber}</li>";
}else{
?>
<li><a class="link" href="<? echo "{$newurltitle_newscats_cat}-c-{$id_newscats_cat}-p-{$pagenumber}.html"; ?>"><? echo $pagenumber; ?></a></li>

<?
}


}
?>
<li>
<?
if($page >= $cn){
?>
<i class="fa fa-angle-double-left"></i>
<?
}else{
?>
<a class="link" href="<? echo "{$newurltitle_newscats_cat}-c-{$id_newscats_cat}-p-{$pagenext}.html"; ?>"><i class="fa fa-angle-double-left"></i></a>
<?
}
?>

it works well but it gives me pages like this 1,2,3,4,5,6,7,8,9,10 i want to split pages like this 1,2,3,4,...,9,10 how can i do this

thanks

Mahmoud Samy
  • 183
  • 1
  • 2
  • 10
  • You just show an example for what you want at first page, what do you want, for example, if you at page number 4? – SaidbakR Apr 16 '16 at 13:27
  • 1
    i want make it smart if i have page number 4 then show `..,3,[4],5,..,9,10` something like that @sємsєм – Mahmoud Samy Apr 16 '16 at 13:30
  • In other words, you want to show one page link before the current page and one after it then last two pages? does not it? – SaidbakR Apr 16 '16 at 13:34
  • @sємsєм yes something like that – Mahmoud Samy Apr 16 '16 at 13:36
  • It should be solved as like you print the current page as text. You will have to add more conditions to your `if` i.e using `elseif` – SaidbakR Apr 16 '16 at 13:39
  • 3
    Possible duplicate of [How to echo "..." after number 9 and echo the last two numbers after "..." for pagination?](http://stackoverflow.com/questions/35259078/how-to-echo-after-number-9-and-echo-the-last-two-numbers-after-for-p). I think the answer I provided there should be what you need. – trincot Apr 16 '16 at 14:07

0 Answers0