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 レコードの開始行から終了までを検索することです。このコア関数を使用して、ページめくり機能を開始できます。
ここで紹介する関数は、最も単純な種類のページをめくる機能です。ページ送り機能は、ページ送りとページ戻しのみを実現します。これは、このサイトの特集ニュースおよびダウンロード センターのページ送り機能です。
まず、ページめくり機能を実装するアイデアを紹介します。
まず、現在のページに固定的に表示されるデータ レコードの数を決定し、それが 20 レコードであると仮定し、値を設定します$limit を 20 に設定します: $limit= 20;
データベース レコードを表示するときは、最初のレコードから開始する必要があるため、$start の初期値は 0 に設定されます: $start=0; >
そして、ページめくり関数の実装 $start の動的変更に依存して、ページを後ろにめくるとき、$start は定期的に $limit:$start+$limit を追加し、ページを前にめくるとき、$start は定期的に減算します。 $limit:$start-$limit;
上記のアイデアを持ったら、プログラム ページのデザインを開始できます。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 "翻页功能 | "; if (!empty($num)) { for ($i=0;$i<$num;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "$val | $val1 | "; } } echo ""; //设置向前翻页的跳转 $prve=$start-$limit; if ($prve>=0) { echo "prve"; } //设置向后翻页的跳转 $next=$start+$limit; if ($next<$num_max) { echo "next"; } echo " | "; ?>
|
$limit=20 //データベース検索開始レコードを初期化しますif (!empty($start)) $start; =0; mysql_connect("localhost","",""); mysql_select_db(database); //データベース レコードの総数を設定します$result=mysql_query("select *テーブルから"); $num_max=mysql_numrows($result); $result=mysql_query("select * from table order by id desc limit $start,$limit); $result); echo "
ページめくり関数if (!empty($num)) { for ($i= 0;$i$val=mysql_result($result,$i,"val"); ,"val1"); echo " |
$val | gt;$val1} } echo "< ;tr> | "; //ページ送りを設定します$prve=$start-$limit; if ($prve>=0) { echo "prve"; } //ページへのジャンプを逆方向に設定します$next=$start+$limit ; if ($next<$num_max) { <🎜>echo "next"; } echo "< / td>< | < "; <🎜>?> |
テーブル>
前進関数と後進関数のプログラムが完成しました。ただし、より多くのデータ表示を処理する場合、この関数は非常に煩雑になります。次に、より強力で複雑なページめくり機能、ループ ページめくり (これより適切な名前が見つからないので、私はいつもこれと呼んでいます) を紹介していきます。
以前に紹介した単純なページめくり機能は、より強力で複雑です。このサイトの特別なフォーラムや記事では、このループ ページめくり機能が使用されます。循環的なページめくりは、数値とともに前後に回転することで実現されます。
page: prve <<1 2 3 4 ..... 20 >>
は、現在の各ページを表します。prve と next は、現在のページの前後反転だけでなく、前後反転のより複雑なデジタル制御を表します。
いつものように、プログラムの設計に進む前に、まずアイデアを明確にしておきます。ページめくり機能の実装方法を読んだ後、読者が自分で実践することをお勧めします。ここで学習する方法の一部は次のとおりです。比較的抽象的。
まず、データベース内に 1,000 件を超えるレコードがあると仮定します。現在 25 件のレコードを表示したいと考えており、数値反転コントロールは 20 であるため、表示結果は次のようになります。 >
ページ : 0 1 2 3 ......... 19 >> next 反転後の結果を表示: ページ: prve それでは、固定数で 25 が表示され、固定数で 20 の倍数が制御されます。これら 2 つの数値を使用してページめくり関数を実装できます。最初に固定表示変数を設定します:
データベースの初期変数を設定します。 > $start=0;
データベースレコードの総数: $num;
ページ番号変数: $page;
以下は引用内容です: . . $result=mysql_query("select * from table"); for ($page=0;$page<($num/$limit) ; $page++) { echo $page; if ($page>0 && ($page%20)==0) {
以下为引用的内容: ... $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; //退出循环 } } ?> |
break を終了します} } ?> |
テーブル>
このコードは、数値の表示を除いて、他の関数を実装していません。反転を制御する数値がさらに多いため、これらの制御量をマークおよび識別するには、いくつかの変数を使用する必要があります。ここでは $s を使用してマークします。この変数は、デジタル ページめくりコントロールを制御するために使用されます。ここで、ページめくりサイクルを実装する完全なコード 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); echo ""; if (!empty($numb)) { for($i=0;$i<$numb;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "$val | $val1 | "; } } echo " "; //数字循环翻页的控制 echo ""; echo "页: | "; //前翻控制 if ($s>20) { if ($s==21) { $st=$s-21; } else { $st=$s-20; } $pstart=$st*$limit; echo "echo "start=$pstart&s=$st>prve | "; } echo " >> | "; //设置当前页对应页数无链接功能 $star=$start; //注意循环的初始附值,仔细想想为什么不是 0 for ($page=$s;$page<($num/$limit);$page++) { $start=$page*$limit; echo ""; if($page!=$star/$limit) { echo "echo "start=$start&s=$s>"; } echo $page; if($page!=$star/$limit) { echo ""; } echo " | "; //控制数字页面限制显示功能,控制只显示 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 " << | echo "start=$start&s=$s>next | "; } //注意跳出循环的控制 break; } } echo " "; ?> |
if (!empty($start)) $start=0; if (!empty($s)) $s=0; " "); mysql_select_db(database); //統計データベース レコードの総数$result=mysql_query("select * from table"); ; $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 " |
$val | $val1 | } } echo "
"; //デジタル ページめくりの制御echo ""; echo " gt;
Page: | "; //前方反転制御if ($s>20) { if ($s==21) { $st=$s-21; } else { $st=$s-20; $pstart=$st*$limit; ;td> ;prve"; <🎜>} <🎜>echo "< td> > 0 ではありません for ($page=$s;$page<($num/$limit);$page++) { <🎜>$start=$page*$limit; <🎜>echo "< td>" ; if($page!=$star/$limit) { echo "" ; } echo $page; if($page!=$star/$limit) { echo ""; 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 " << | echo "start=$start&s=$s>next | "; } //ページからの飛び出しの制御に注意ループブレーク; } エコー "
";
上記のプログラムは強力なページめくり機能を完成させることができます。 送信ページめくり機能もあります。つまり、送信フォームにデータ送信を追加すると、プログラムが対応するページにジャンプします。この機能は実装が比較的簡単で、完成は読者に任せてください。これ以上の紹介はありません...