私は以下のページネーションスクリプトを使用しています。問題は、それがページの連続カウントを与えることです。たとえば、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
と表示する必要があります。私を助けてください。私はあなたが記述しているものとは思わないページ区切りページ番号を打ち破る
$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>";
[OK]をクリックします。私は2番目の方法に行きたいです。しかし、あなたのコードを私のものに置き換えたとき、3つのドットは最後の番号の後に来るだけでなく上記の例では '1 ... 12 13 [14] 15 16 ... 100'となりました。私が得ているドットだけが正しい位置にないと、あなたが言ったようにコードが動いています。 –
どのページ'$ id'?両方のドットセットは、10ページセットの5ページと6ページにのみ表示されます。 – domwrap
いいえ、あなたが言及している場所に現れていません..最後の数字の後に現れているページは何ですか私は..しかしあなたの解決策に感謝..ドットの事を除いて私は残りたいと思うものを得ました...ありがとう:) –