Ben kullanıcı erişimi vermek istediğiniz kayıtların çok tutan bir MySQL tablo var. Ben bu yüzden bir anda 25 kayıtları bölmek gerekiyor, bu yüzden bir sayfa dizini ihtiyaç sayfasına tüm tabloyu dökümü istemiyorum. Muhtemelen diğer sayfalarda bu gördük, onlar tür sayfanın dibinde şöyle:
< 1 2 3 4-5 6 7 8 9>
Örneğin, kullanıcı '4 'bağlantı, sayfa yenilenir ve (4 sayfa x 25 kayıt) üzerinde taşınır ofset üzerine tıkladığında. İşte ben zaten ne var:
function CreatePageIndex($ItemsPerPage, $TotalNumberOfItems, $CurrentOffset, $URL, $URLArguments = array())
{
foreach($URLArguments as $Key => $Value)
{
if($FirstIndexDone == false)
{
$URL .= sprintf("?%s=%s", $Key, $Value);
$FirstIndexDone = true;
}
else
{
$URL .= sprintf("&%s=%s", $Key, $Value);
}
}
Print("<div id=\"ResultsNavigation\">");
Print("Page: ");
Print("<span class=\"Links\">");
$NumberOfPages = ceil($TotalNumberOfItems / $ItemsPerPage);
for($x = 0; $x < $NumberOfPages; $x++)
{
if($x == $CurrentOffset / $ItemsPerPage)
{
Print("<span class=\"Selected\">".($x + 1)." </span>");
}
else
{
if(empty($URLArguments))
{
Print("<a href=\"".$URL."?Offset=".$x * $ItemsPerPage."\">".($x + 1)."</a> ");
}
else
{
Print("<a href=\"".$URL."&Offset=".$x * $ItemsPerPage."\">".($x + 1)."</a> ");
}
}
}
Print("</span>");
Print(" (".$TotalNumberOfItems." results)");
Print("</div>");
}
Açıkçası bu kod parçası dinamik bir dizin oluşturabilirsiniz gelmez, sadece mevcut her sayfa için sayfanın altındaki bütün endeksi döker. Ne ben sadece ihtiyacınız bir >> veya skoru 5 ya da öylesine sayfaları taşımak için bir şey ile birlikte önceki 5 sayfa ve sonraki 5 sayfa (eğer varsa) gösteren dinamik bir çözümdür.
Herkes i tekerleği yeniden icat ediyorum hissediyorum, bu uygulama bir zarif ve yeniden kullanılabilir bir şekilde görülür? Herhangi bir yardım takdir edilmektedir.