Аз съм начинаещ в PHP. Искам да покажа съдържанието на моята база данни mysql от таблицата към главния дисплей на предната страница като страниране (с ограничение) на броя елементи от таблицата на базата данни. Моят код показва формат с точно страниране и начертава елементи на първата страница (като: http://www.swaminarayantravel.com/category.php?sc=Trekking), но проблемът е, че когато се опитам да отида на страница 2 от страницата по-долу, тя отива на фалшивата страница. Моят код е:
<?php
//get the function
include_once ('function.php');
include_once ('includes/connect.php');
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 4;
$startpoint = ($page * $limit) - $limit;
//to make pagination
$sql = "category where category.category='$selcat'";
?>
<div class="records round">
<ul class="homelist">
<?php
//show records
$query = mysql_query("SELECT * FROM {$sql} LIMIT {$startpoint} , {$limit}");
echo "<table>
<tr></tr>";
while ($row = mysql_fetch_assoc($query)) { ?>
<?php echo' <li > <img src="images/subcat/'.$row['file'] .'" height="100" width="100" alt="'.$row['subcategory'] .'"/>
<a class="title">';
$subcategory= $row["subcategory"];
echo "$subcategory";
echo'</a>
<p align="justify">';
$detail= $row["subcat_detail"];
echo "$detail";
echo ' </p> '; ?>
<?php } ?>
</table></div>
<?php echo pagination($sql,$limit,$page); ?>
и страницата function.php съдържа следните кодове:
<?php
функция pagination($query, $per_page = 10,$page = 1, $url ='?'){
$query = "SELECT COUNT(*) as num
FROM {$query}"; $ред = mysql_fetch_array(mysql_query($query)); $total = $row['num']; $съседни = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<ul class='pagination'>";
$pagination .= "<li class='details'>Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='/bg{$url}page=$counter'>$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='/bg{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='/bg{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='/bg{$url}page=$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='/bg{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='/bg{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='/bg{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='/bg{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='/bg{$url}page=$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='/bg{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='/bg{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='/bg{$url}page=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='/bg{$url}page=$next'>Next</a></li>";
$pagination.= "<li><a href='/bg{$url}page=$lastpage'>Last</a></li>";
}else{
$pagination.= "<li><a class='current'>Next</a></li>";
$pagination.= "<li><a class='current'>Last</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
?>