この記事では主に PHP での 2 ページめくり表示関数の実装について紹介します。興味のある方はぜひ参考にしてください。
php+mysql を使用して Web ページ上のすべてのデータベース情報を表示するのは非常に簡単で興味深いことは誰もが知っていますが、データベース情報が非常に少ない場合は、ページ表示はまだ満足のいくものですが、データベースが大量にある場合は問題ありません。表示状況が非常に悪くなります。 現在のページの表示データ量を実現する方法と、動的反転機能を実現する方法を紹介します。
ここでは、 2 つのページめくり表示関数の実装を紹介します:
まず、ページめくりで使用されるデータベース構文を紹介します:
mysql_query("select * from table order by id desc");
このデータベース ステートメントは、レコードを検索して逆順に表示するために使用されます。 . が出てきますが、ページめくり機能では機能しません。次の拡張構文がページめくりのコア機能です:
mysql_query("select * from table order by id desc limit $start,$limit");
$start ここがデータベース検索の開始行、$limit が検索の開始行です。行から始まり $limit レコードで終わります。このコア関数を配置したら、ページめくり関数を開始できます。
最初のページめくり機能: ここで紹介する機能は、ページめくり機能の中で最も単純な、ページ送りとページ戻しのみを実現できる機能です。
まず、ページめくり機能を実装する のアイデアを紹介します。
まず、現在のページに固定的に表示されるデータ レコードの数を決定します (20 レコードであると仮定し、$limit の値を 20 に設定します)。 : $limit=20;
上記のアイデアを持ったら、プログラムの設計を開始できます
<? //设置当前页显示的数量(这个数量可任意设置) $limit=20; //初始化数据库搜索起始记录 if (!emptyempty($start)) $start=0; mysql_connect("localhost","",""); mysql_select_db(database); //设置数据库记录总数 $result=mysql_query("select * from table"); $num_max=mysql_numrows($result); $result=mysql_query("select * from table order by id desc limit $start,$limit); $num=mysql_numrows($result); echo "<table><tr><td>翻页功能</td></tr>"; if (!emptyempty($num)) { for ($i=0;$i<$num;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "<tr><td>"; //设置向前翻页的跳转 $prve=$start-$limit; if ($prve>=0) { echo "<a href=page.php?start=$prve>prve</a>"; } //设置向后翻页的跳转 $next=$start+$limit; if ($next<$num_max) { echo "<a href=page.php?start=$next>next</a>"; } echo "</td></tr></table>"; ?>
前後反転機能を備えたプログラムが完成しましたが、表示するデータが増えるとこの機能は非常に面倒になります。引き続き以下で紹介していきます より強力で複雑なページめくり関数 - ループページめくり (より適切な名前が見つからないので、私はいつもこれと呼んでいます)。:) シンプルなページめくり関数の実装が紹介されました。前に紹介したページめくり機能は、より強力で複雑です。このサイトの特別なフォーラムと特別な記事は、このループ ページめくり機能を使用します。ループ ページめくりは、プラスの数字を前後に回すことで実現されます。具体的な表現は次のとおりです:
ページ: prve <<1 2 3 4 ....... 20 >> next
中の数字は現在の各ページを表します。現在のページの場合 前後を反転しますが、より複雑なデジタル制御で前後を反転します。 ここで学習する方法やアイデアの一部は比較的抽象的である可能性があるため、いつものように、プログラミングに進む前に、まずアイデアを明確にしてください。 まず、データベースに 1,000 件を超えるレコードがあると仮定します。現在 25 件のレコードを表示したいと考えており、数値反転コントロールは 20 であるため、次のような表示結果が得られます。
反転後の表示結果: ページ: prve <<20 27 28 ...... 49 >> ; 次に
さて、固定表示数は 25 で、固定数は 20 倍を制御します。これら 2 つの数値を使用してページめくり関数を実装できます。まず、固定表示変数を設定します。 :
$ limit=20;データベース初期変数設定:$start=0;
データベースレコードの総数:
ページ番号変数:$page;
ページを表示するプログラム数値ループは次のとおりです:
<? ... $result=mysql_query("select * from table"); $num=mysql_numrows($result); for ($page=0;$page<($num/$limit);$page++) { echo $page; if ($page>0 && ($page%20)==0) { break; //退出循环 } } ?>
数値の表示を除いて、このコードは他の関数を実装していません。反転を制御するにはさらに多くの数値があるため、これらの制御量をマークおよび識別するにはいくつかの変数を使用する必要があります。この変数は、デジタル サイクル ページめくりを制御するために使用されます。サイクル ページめくりを実装する完全なコード page.php を確認できます:
<? $limit=25; if (!emptyempty($start)) $start=0; if (!emptyempty($s)) $s=0; mysql_connect("localhost","",""); mysql_select_db(database); //统计数据库记录总数 $result=mysql_query("select * from table"); $num=mysql_numrows($result); $result=mysql_query("select * from table order by id limit $start,$limit"); $numb=mysql_numrows($result); echo "<table>"; if (!emptyempty($numb)) { for($i=0;$i<$numb;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "</table>"; //数字循环翻页的控制 echo "<table>"; echo "<tr><td>页:</td>"; //前翻控制 if ($s>20) { if ($s==21) { $st=$s-21; } else { $st=$s-20; } $pstart=$st*$limit; echo "<td><a href=page.php?"; echo "start=$pstart&s=$st>prve</a></td>"; } echo "<td> >></td>"; //设置当前页对应页数无链接功能 $star=$start; //注意循环的初始附值,仔细想想为什么不是 0 for ($page=$s;$page<($num/$limit);$page++) { $start=$page*$limit; echo "<td>"; if($page!=$star/$limit) { echo "<a href=page.php?"; echo "start=$start&s=$s>"; } echo $page; if($page!=$star/$limit) { echo "</a>"; } echo "</td>"; //控制数字页面限制显示功能,控制只显示 20 页 if ($page>0 && ($page%20)==0) { if ($s==0) { $s=$s+21; } else { $s=$s+20; } $start=$start+$limit; if ((($num/$limit)-1)>$page) { echo "<td> <<</td><td><a href'page.php?"; echo "start=$start&s=$s>next</a></td>"; } //注意跳出循环的控制 break; } } echo "</tr></table>"; ?>
ページめくりを送信するページめくり関数もあります。つまり、送信フォームにデータ送信を追加すると、プログラムが対応するページに移動します。この機能は実装が比較的簡単で、完了は読者に任されています。
要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。
関連する推奨事項:
PHP で階層ツリー展開を再帰的に実装する方法 PHP 配列関数 array_multisort() の使用例と分析例PHP 関数 import_request_variables() の使用例と分析例以上がPHPでの2ページめくり表示関数の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。