<?$dbhost=paginator;$dbuser=root;$dbpass="";$dbname=paginator;$conn=mysql_connect($dbhost,$dbuser,$dbpass)or die("Ошибка соединения с базой данных");mysql_select_db($dbname);
$tableName=country;$targetpage='index.php';$limit=10;
$query="SELECT COUNT(*)as num FROM $tableName";
$total_pages=mysql_fetch_array(mysql_query($query));
$total_pages=$total_pages[num];
$stages=3;$page=mysql_escape_string($_GET[page]);
if($page){$start=($page-1)*$limit;}else{$start=0;}
//Get page data
$query1="SELECT * FROM $tableName LIMIT $start,$limit";
$result=mysql_query($query1);
//Initial page num setup
if($page==0){$page=1;}
$prev=$page-1;$next=$page+1;
$lastpage=ceil($total_pages/$limit);
$LastPagem1=$lastpage-1;$paginate='';
if($lastpage>1){$paginate.="<div class=paginate>";
//Previous
if($page>1){$paginate.="<a href='$targetpage?page=$prev'>&larr; предыдущая</a> | ";}else{$paginate.="<span class=disabled>&larr; предыдущая</span> | ";}
//Pages
if($lastpage<7+($stages*2))//Not enough pages to breaking it up
{for($counter=1;$counter<=$lastpage;$counter++){if($counter==$page){$paginate.=" <span class=current>$counter</span> ";}else{$paginate.=" <a href='$targetpage?page=$counter'>$counter</a> ";}}}
elseif($lastpage>5+($stages*2))//Enough pages to hide a few?
{
//Beginning only hide later pages
if($page<1+($stages*2)){for($counter=1;$counter<4+($stages*2);$counter++){if($counter==$page){$paginate.=" <span class=current>$counter</span> ";}else{$paginate.=" <a href='$targetpage?page=$counter'>$counter</a> ";}}$paginate.=" ... ";$paginate.=" <a href='$targetpage?page=$LastPagem1'>$LastPagem1</a> ";$paginate.=" <a href='$targetpage?page=$lastpage'>$lastpage</a> ";}
//Middle hide some front and some back
elseif($lastpage-($stages*2)>$page && $page>($stages*2)){$paginate.=" <a href='$targetpage?page=1'>1</a> ";$paginate.=" <a href='$targetpage?page=2'>2</a> ";$paginate.=" ... ";for($counter=$page-$stages;$counter<=$page+$stages;$counter++){if($counter==$page){$paginate.=" <span class=current>$counter</span> ";}else{$paginate.=" <a href='$targetpage?page=$counter'>$counter</a> ";}}
$paginate.=" ... ";
$paginate.=" <a href='$targetpage?page=$LastPagem1'>$LastPagem1</a> ";
$paginate.=" <a href='$targetpage?page=$lastpage'>$lastpage</a> ";}
//End only hide early pages
else{$paginate.=" <a href='$targetpage?page=1'>1</a> ";$paginate.=" <a href='$targetpage?page=2'>2</a> ";$paginate.=" ... ";for($counter=$lastpage-(2+($stages*2));$counter<= $lastpage;$counter++){if($counter==$page){$paginate.=" <span class=current>$counter</span> ";}else{$paginate.=" <a href='$targetpage?page=$counter'>$counter</a> ";}}}}
//Next
if($page<$counter-1){$paginate.=" | <a href='$targetpage?page=$next'>следующая &rarr;</a>";}else{$paginate.=" | <span class=disabled>следующая &rarr;</span>";}$paginate.="</div>";}echo'Всего страниц: '.$total_pages;
//pagination
echo$paginate?><ol><?while($row=mysql_fetch_array($result)){echo'<li>'.$row['printable_name'];}
?></ol>