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