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 レコードの開始行から末尾までを検索します。このコア関数を使用して、ページめくり機能を開始できます。
-------------------------------------------------- ----------
最初のページめくり機能:
ここで紹介する機能は、ページ送り機能の中で最も単純なもので、当サイトの特集ニュース・ダウンロードセンターのページ送り機能のみを
実現します
。ページめくり機能のアイデア:
まず、現在のページに固定的に表示されるデータ レコードの数を決定します。$limit の値を 20 に設定します。$limit=20;
データベース レコードを表示する場合は、最初のレコードから開始する必要があります。ここで $start を設定します: $start=0;
ページめくり関数の実現は $start の動的変更に依存します。ページを逆方向にめくると、$start は定期的に $limit: $start+ を追加します。 $limit; そして、ページを前にめくると、$start が定期的に $limit を減算します: $start-$limit;
上記の考え方を使用して、プログラム page.php の設計を開始できます
。
// 現在のページに表示されている番号を設定します(この番号は任意に設定可能です)
$limit=20;
//データベース検索開始レコードを初期化します。
if (!empty($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 (!empty($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>次</a>";
echo
"</td></tr></table>";
?>
順方向と逆方向の反転機能を備えたプログラムは完成しました。ただし、この機能は、より多くのデータを処理する場合に非常に面倒になります。次に、より強力で複雑なページめくり機能 (ページめくり) を紹介します。これより適切な名前が見つからないので、いつもこれと呼んでいます。:)
単純なページめくり機能は以前に紹介しましたが、以下で紹介するページめくり機能はより強力で複雑です。これはまさにフォーラムであり、非常に特別なフォーラムです。この記事ではこのループページめくり機能を使用しています。
循環的なページめくりは、数字を使用して前後に回転することによって実現されます。具体的な式は次のとおりです。
page: prve <<1 2 3 4 ..... 20 >>
次の数字は、現在の各ページを表します。そして、逆方向の反転は、現在のページの単なる前後方向の反転ではなく、より複雑なデジタル制御による前後方向の反転です。
いつものように、プログラムの設計に進む前に、まずアイデアを明確にすることをお勧めします。ループでページをめくる機能については、自分で練習してください。ここで説明する方法やアイデアの一部は比較的抽象的なものであるため、
まず、データベース内に 25 件以上のレコードがあると仮定します。反転コントロールは 20 なので、次の表示結果になります。
page: 0 1 2 3 ..... 19 >>
反転後の次の表示結果:
page: prve <<20 27 28 ... .... 49 >> next さて
、ルールを見てみましょう。固定表示数は 25 で、固定数は 20 の 2 倍を制御します。これら 2 つの数値を使用してページめくりを実装できます。関数;
最初に設定された表示変数:
$リミット=20;
データベースの初期変数設定:
$start=0;
データベース レコードの総数は次のとおりです: $num;
ページ番号変数: $page;
ページ番号ループ表示のプログラムは次のとおりです
。
...
$result=mysql_query("select * from table");
$num=mysql_numrows($result);
for ($page=0;$page<($num/$limit);$page++) {
$ページをエコーします。
if ($page>0 && ($page%20)==0) {
ブレーク; // ループを終了します。
}
}
?>
数値の表示を除いて、このコードは他の関数を実装していません。反転を制御するには、いくつかの変数を使用してこれらの制御量をマークし、識別する必要があります。デジタル ページめくりコントロールを制御するには、ページめくりサイクルを実装する完全なコード page.php を確認します
。
$limit=25;
if (!empty($start)) $start=0;
if (!empty($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);
エコー "<テーブル>";
if (!empty($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 "<tr><td>Page:</td>";
// コントロールを反転します。
if ($s>20) {
if ($s==21) {
$st=$s-21;
} それ以外 {
$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?";
エコー "start=$start&s=$s>";
エコー $page
if($page!=$star/$limit)
{
エコー「</a>」;
}
echo "</td>"
//デジタルページ制限表示機能を制御し、20ページのみ表示するように制御します。
if ($page>0 && ($page%20)==0) {
if ($s==0) {
$s=$s+21;
} それ以外 {
$s=$s+20;
$start=$start+$limit;
if ((($num/$limit)-1)>$page)
{
echo "<td> <<</td><td><a href'page.php?";
echo "start=$start&s=$s>次</a></td>";
}
//ループからの飛び出し制御に注意
壊す;
}
}
エコー "</tr></table>";
?>
上記のプログラムは、強力なループ ページめくり機能を完了することができます。
送信ページめくり機能もあります。つまり、送信フォームにデータを追加すると、プログラムはこの機能にジャンプします。実装は比較的簡単です。完成させるのは読者に任せ、ここでは紹介しません。