아래의이 페이지 매김 스크립트를 사용하고 있습니다. 문제는 그것이 페이지의 연속적인 카운트를 제공한다는 것입니다. 예를 들어, 10 페이지가있는 경우 숫자 1 2 3 4 5 6 7 8 9 10
(해당 페이지를 모두 클릭 할 수 있음)을 알려줍니다. 내가 원하는 것은 5 이후 페이지 매김 횟수를 줄이는 것입니다. 1 2 3 4 5.......9 10
이 표시되어야합니다. 그런 다음 페이지 번호 5를 클릭하면 1을 감추고 6을 2 3 4 5 6....9 10
으로 표시해야합니다. 도와주세요. 난 당신이 설명하는지 생각하지 않는다페이지 매기기 (pagination) 페이지 번호 계산하기
$start = 0;
$limit = 1;
if(isset($_GET['id'])){
$id = (!empty($_GET['id']))?$_GET['id']:null;
$start = ($id-1)*$limit;
}else{
$id = null;
}
$stmt = $pdo->prepare("SELECT ad_id, ad_description, ad_url, ad_memclicks, ad_visclicks, ad_status, avc_clicks FROM ads
LEFT JOIN ads_viewed_cost ON ads.ad_clicks = ads_viewed_cost.avc_id
WHERE ad_user = :user LIMIT $start, $limit");
$stmt-> bindValue(':user', $sessionid);
$stmt-> execute();
$count = $pdo->prepare("SELECT COUNT(*) as cnt FROM ads LEFT JOIN ads_viewed_cost ON ads.ad_clicks = ads_viewed_cost.avc_id WHERE ad_user = :user");
$count-> bindValue(':user', $sessionid);
$count-> execute();
$rf = $count->fetch();
$rows = $rf['cnt'];
$total = ceil($rows/$limit);
if($id>1){
echo "<span class='pre'><a href='?id=".($id-1)."' class='button'>PREVIOUS</a></span>";
}
if($id!=$total){
echo "<span class='next'><a href='?id=".($id+1)."' class='button'>NEXT</a></span>";
}
echo "<ul class='pagination'>";
for($i=1; $i<=$total; $i++){
if($i == $id){
echo "<li class='current'>".$i."</li>";
}else{
echo "<li><a href='?id=".$i."'>".$i."</a></li>";
}
}
echo "</ul>";
좋아 죄송합니다 .. 당신은 .. 나는 두 번째 방법 가고 오른쪽하려는 ..하지만 난 내와 코드를 교체 할 때, 세 개의 점은 당신으로 마지막 숫자 뒤에 만오고되지 않습니다 위의 예제에서'1 ... 12 13 [14] 15 16 ... 100'을 받았습니다. 내가 얻는 점만 올바른 위치에 있지 않습니다. 코드가 작동 중입니다. –
어떤 페이지에서 '$ id'? 두 도트 세트는 10 페이지 세트의 5 페이지와 6 페이지에만 나타납니다. – domwrap
아니요 ... 당신이 언급하는 곳은 나타나지 않습니다 .. 마지막 번호 뒤에 나와있는 페이지가 어떤지 상관없이 나타납니다.하지만 솔루션에 감사드립니다. 점을 제외하고는 나머지를 원해 ... 감사합니다 :) –