ホームページ > バックエンド開発 > PHPチュートリアル > 質問: ページングに関する質問

質問: ページングに関する質問

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:35:25
オリジナル
952 人が閲覧しました

请教:关于分页的问题!
大家好,我是新手,我做了一个PHP分页,基本效果已经实现了,我想让当前页的颜色与其它页颜色不同,应该怎么实现?我想了好几天实在搞不定啊!还有假如以后我的页数多了,如何隐藏页数? 并且怎样让当前页居中显示???请知道的高手,帮忙指点下!

inclued("conn.php"); //连接数据库
//分页
$pagesize=10; //设置一页显示条数

$qw=mysql_query("select count(*) from `blog`");
$we=mysql_fetch_array($qw);
$er=$we[0]; //得出数据库表总数

$pages=intval($er/$pagesize); //得出页数
if($er%$pagesize){
$pages++;
}

//设置当前页
if(isset($_GET['page'])){
$page=intval($_GET['page']);
}else{
$page=1;
}

$offset=$pagesize*($page - 1); //计算起始条数
$sql="select * from `blog` order by id desc limit $offset,$pagesize";
$query=mysql_query($sql);

while($rs=mysql_fetch_array($query)){


?>



...


阅读全文>>



}
?>

//ページネーションを表示
$shouye=1;
$shangye=$page-1;
$xiaye=$page+1;
$weiye =$pages;
if($page>1){
echo " 最初のページ" ;
echo " 前のページ";
}
//ループページ数
($i=1;$i<=$pages;$i++){
echo " ".$i ." < ;/a>";
}

if($page<$pages){
echo "
";
echo "
最後のページ";
}
?>

-----解決策---------
悪くないですね、ほほ

主な変更点はここです

//ページ数をループします
for($i=1;$i<=$pages;$i++){
echo "< ;a href='index.html?page=".$i."'> ".$i." ";
}

この中でループ、$i は max から始まります ($page-X, 1) から始まり min($page+X, $pages) で終わります。ページ数が十分であれば、2*X+1 が総ページ数になります。表示 [最初、最後、最初、最後を除く]

$i === $page、現在のページを示します
------解決策------------------

PHP コード

/*** ページングスタイルを設定する
 *
 * @アクセスパブリック
 * @param integer $showNumCount は複数の数値を表示します (例: 1 2 3...)
 * @param integer $totalPage データの総ページ数
 * @param integer $page 現在のページ番号
 *
 * @return array $pageNumList ページ番号(数値)リスト*/
関数 showNumber($showNumCount, $totalPage, $page)
{
    $showNumCount = $totalPage >= $showNumCount : $totalPage;
    if($totalPage > $showNumCount && $page > ceil($showNumCount / 2))
    {
        if($totalPage - $page > フロア($showNumCount / 2))
        {
            $pageNumList = array_slice(range(1, $totalPage), $page - フロア($showNumCount / 2) - 1, $showNumCount);
        }
        それ以外
        {
            $pageNumList = range($totalPage - $showNumCount + 1, $totalPage - $showNumCount + $showNumCount);
        }
    }
    それ以外
    {
        $showNumCount = $showNumCount ? $showNumCount : 1;
        $pageNumList = range(1, $showNumCount);
    }
    $pageNumList を返します。
}




$showNumCount = 10; // 10 個のページ番号を表示します。
$totalPage = 100; // 合計 100 ページのデータがある場合
$currentPage = 9 // 現在選択されているページが 9 ページの場合

$pageNumList = showNumber($showNumCount, $totalPage, $currentPage);


/*
次に、これらのページ番号を HTML でループアウトし、接続を追加するだけです。もちろん、現在のページを特定する場合は、次のようなことを行うことができます。

{foreach from=$pageNumList item=page}
    <a href="...?page={$page}"{if $page == $currentPage} style="font-color: red"{/if}>{$page}</a>
{/foreach}
*/ <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート