ホームページ >バックエンド開発 >PHPチュートリアル >PHP ページネーションにクエリ条件を追加する

PHP ページネーションにクエリ条件を追加する

WBOY
WBOYオリジナル
2016-06-13 12:48:48959ブラウズ

PHP ページング クラスにクエリ条件を追加する
ページング クラスに表示されるページ番号にクエリ条件を追加するにはどうすればよいですか? 現在、クエリされるページ番号リンクにはクエリ条件が追加されません

PHP ページング クラスのソース コード

<br>
<br>
<?php<br />
//ファイルの繰り返しインクルードによるエラーを避けるため、関数が存在するかどうかを判断するための条件: <br />
@$page = $_GET['ページ'];<br />
if(!function_exists('pageft')){<br />
//関数 pageft() を定義します。3 つのパラメーターの意味は次のとおりです: <br />
//$totle: メッセージの総数 <br />
//$displaypg: 各ページに表示される情報の数。ここでのデフォルト設定は 20 です。<br />
//$url: ページング ナビゲーションのリンクは、別のクエリ情報「page」を追加することを除いて、この URL と同じです。 <br />
// デフォルト値はこのページの URL (つまり $_SERVER["REQUEST_URI"]) に設定する必要がありますが、デフォルト値の右側は定数のみにできるため、デフォルト値は空の文字列に設定されます。次に、関数内でこのページをページ URL に設定します。 <br />
function pageft($totle,$displaypg=20,$shownum=0,$showtext=0,$showselect=0,$showlvtao=7,$url=''){<br />
<br />
//いくつかのグローバル変数を定義します: <br />
//$page: 現在のページ番号 <br />
//$firstcount: (データベース) クエリの開始項目 <br />
//$pagenav: ページ ナビゲーション バーコード。関数内では出力されません。<br />
//$_SERVER: このページの URL「$_SERVER["REQUEST_URI"]」を読み取るために必要です。 <br />
グローバル $page,$firstcount,$pagenav,$_SERVER;<br />
<br />
//ここでの「$displaypg」を関数外からアクセスできるようにするため、グローバル変数として設定します。変数がグローバル変数として再定義されると、元の値が上書きされるため、ここで再割り当てされることに注意してください。 <br />
$GLOBALS["displaypg"]=$displaypg;<br />
<br />
if(!$page) $page=1;<br />
<br />
// $url がデフォルト値 (空の値) を使用する場合、その値はこのページの URL に割り当てられます: <br />
if(!$url){ $url=$_SERVER["REQUEST_URI"];}<br />
<br />
//URL 分析: <br />
$parse_url=parse_url($url);<br />
$url_query=$parse_url["query"] //URLのクエリ文字列を別途取得<br />
if($url_query){<br />
//URL にはページ番号情報が含まれている可能性があるため、新しいページ番号情報を追加するにはそれを削除する必要があります。 <br />
//ここでは正規表現が使用されています。「PHP の正規表現」を参照してください <br />
$url_query=ereg_replace("(^|&)page=$page","",$url_query);<br />
<br />
//処理された URL のクエリ文字列を元の URL のクエリ文字列に置き換えます: <br />
$url=str_replace($parse_url["クエリ"],$url_query,$url);<br />
<br />
// URL の後にページ クエリ情報を追加しますが、割り当てを待ちます: <br />
if($url_query) $url.="&page"; else $url.="ページ";<br />
}else {<br />
$url.="?ページ";<br />
}<br />
<br />
//ページ番号の計算: <br />
$lastpg=ceil($totle/$displaypg); //最後のページも総ページ数になります<br />
$page=min($lastpg,$page);<br />
$prepg=$page-1; //前のページ<br />
$nextpg=($page==$lastpg ? 0 : $page 1); //次のページ<br />
$firstcount=($page-1)*$displaypg;<br />
<br />
//ページングナビゲーションバーコードの開始: <br />
if ($showtext==1){<br />
$pagenav="<span class='disabled'>".($totle?($firstcount 1):0)."-".min($firstcount $displaypg,$totle)."/$totle Record< /span><span class='disabled'>$page/$lastpg page</span>";<br>
}その他{<br>
$pagenav=""; <br>
}<br>
// ページが 1 つしかない場合は、関数から抜けます: <br>
if($lastpg
<br>
if($prepg) $pagenav.="<a href='$url=1'>ホームページ</a>"; else $pagenav.='<span class="disabled">ホームページ< ;';<br />
if($prepg) $pagenav.="<a href='$url=$prepg'>前のページ</a>"; else $pagenav.='<span class="disabled"> ;/span>';<br>
if ($shownum==1){<br>
$o=$showlvtao;//中央ページのテーブルの全長は奇数です<br>
$u=ceil($o/2);//$o$u<br>に基づいて片面ページ番号の幅を計算します
$f=$page-$u;//現在のページ$currentPageと片側の幅$u<br>に基づいて最初のページの開始番号を計算します
//str_replace('{p}',,$fn)//置換形式<br>
if($f に代入します
$n=$lastpg;//総ページ数、20 ページ<br>
if($n
if($page==1){<br>
$pagenav.='<span class="current">1</span>';<br>
}その他{<br>
$pagenav.="<a href='$url=1'>1</a>";<br>
}<br>
////////////////////////////////////////<br>
for($i=1;$i
if($n<=1){break;}//総ページ数が1の場合<br />
$c=$f $i;//$c<br />から累積計算
if($i==1 && $c>2){<br>
$pagenav.='...';<br>
}<br>
if($c==1){続行;}<br>
if($c==$n){break;}<br>
if($c==$page){<br>
$pagenav.='<span class="current">'.$page.'</span>';<br>
}その他{<br>
$pagenav.="<a href='$url=$c'>$c</a>";<br>
}<br>if($i==$o && $c
$pagenav.='...';<br>
}<br>
if($i>$n){break;}//総ページ数がページ番号リストの長さより小さい場合<br>
}<br>
if($page==$n && $n!=1){<br>
$pagenav.='<span class="current">'.$n.'</span>';<br>
}その他{<br>
$pagenav.="<a href='$url=$n'>$n</a>";<br>
}<br>
}<br>
<br>
if($nextpg) $pagenav.="<a href='$url=$nextpg'>次のページ</a>"; else $pagenav.='<span class="disabled"> ;/span>';<br>
if($nextpg) $pagenav.="<a href='$url=$lastpg'>最後のページ</a>"; else $pagenav.='<span class="disabled">最後のページ< ;/スパン>'; <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。