ホームページ > バックエンド開発 > PHPチュートリアル > PHP+MySQL ページングについて知っておくべきこと

PHP+MySQL ページングについて知っておくべきこと

不言
リリース: 2023-03-29 18:00:02
オリジナル
1742 人が閲覧しました

PHP+MySQL ページングについて知っておくべきこと。この記事では主に PHP+MySQL ページング テクノロジを詳しく紹介し、興味のある方は参考にしてください。仕事をうまくやるには、まずツールを磨く必要があります。」 今日は、PHP を使用してページングを実装します。次に、最初のタスクは、PHP の作業環境を構築することです。

環境の準備

PHPテクノロジーを使用する場合、最良のパートナーはAMP(Apache、MySQL、PHP)です。現在、WAMP、XAMPP、phpnowなど、多くの統合環境があります。しかし今日は手動で PHP の作業環境を構築します。

Apache まず、Apache 公式 Web サイトから Apache サーバーをダウンロードする必要があります。 msi バージョンをダウンロードすると、手動で構成することなくさまざまな環境を構成できるため、msi バージョンをダウンロードするのが最善です。

Apache ダウンロード アドレス: Apache サーバーの msi バージョン。PHP サーバー環境を迅速に構築するための最初の選択肢です。

MySQLデータベース業界で有名なオープンソースプロジェクトであるMySQLがOracleに買収されましたが、将来的に料金が発生するかどうかはわかりません。しかし現時点では、PHP 開発に最適な選択肢は MySQL です。言うまでもありませんが、ダウンロードアドレスは次のとおりです。

MySQL ダウンロード アドレス

インストール プロセス中、ユーザー名とパスワードを忘れないようにしてください。


PHPPHPは言語ではなく、フレームワークであり、MySQLに接続するクライアント実装であると言う人もいます。よく考えてみたら、なんとなく意味があるような気がしました。しかし、こうやってみると、まったく言語ではない言語もたくさんあるのです。民間の英雄として、php の進歩はよく知られています。 phpのダウンロードアドレスは下に貼ってありますので、別途探す必要はありません。

PHPのダウンロードアドレス: PHPのmsiバージョン。手動で環境を構成することなく、すぐにPHPを構築できます

作業環境

上記の3つのソフトウェアをインストールした後、正式に環境のセットアップを開始できます。現時点では、作業ディレクトリが Apache の htdocs フォルダの下にあり、htdocs は仮想ディレクトリとして、Apache 設定ファイルによって維持されているということだけを知っておく必要があります。これは、将来的には徐々に使用することになります。

これは、Apache インストール ディレクトリ内の htdocs フォルダーであることに注意してください。


データベースの準備

環境はセットアップされましたが、まだページングを行う必要があります。まず第一に、データがなければなりません。 「わらを使わずにレンガを作る」。次にデータを準備しましょう。

データベースを作成する データベースステートメントを作成する

create database my_database_name

ここでは、MySQL インストールに付属する mysql データベースを使用します。それも少し簡単です。

テーブルの構築 データ ウェアハウスはまだ構築されていますが、データが保存されているテーブルと「部屋を分ける」必要があります。

create table table_name(・・);

同様に、ここでは遅延のために組み込みのデータベーステーブルを使用します。詳細は次のとおりです:

mysql> use mysql
Database changed
mysql> desc innodb_table_stats;
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| Field   | Type  | Null | Key | Default  | Extra   |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| database_name  | varchar(64)  | NO | PRI | NULL  |    |
| table_name  | varchar(64)  | NO | PRI | NULL  |    |
| last_update  | timestamp  | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| n_rows   | bigint(20) unsigned | NO | | NULL  |    |
| clustered_index_size | bigint(20) unsigned | NO | | NULL  |    |
| sum_of_other_index_sizes | bigint(20) unsigned | NO | | NULL  |    |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
ログイン後にコピー

事前保存データ

デモの便宜上、いくつかのデータを事前に保存する必要があります。バッチインポートを使用するか手動で追加するかは関係ありません。コアはまだ

insert into table_name(···)values(··);


たとえば、保存するデータは次のとおりです。

msi ではないバージョンのインストールでは、mysql の一部の機能を使用してデータベースを操作できるように、PHP 拡張機能を手動で有効にする必要があります。

php.ini

このファイルはphpのインストールディレクトリにあります。以下のコードの前にあるセミコロンを削除する必要があります。

[PHP_MYSQL]extension=php_mysql.dll[PHP_MYSQLI]

extension=php_mysqli.dll

PHP ini ファイルのコメントは次のとおりです。次に、ページングの中心的な概念について説明します。

これは、現在のページ、ページ サイズ、レコードの総数です。これら 3 つにより、レコードの合計数とページ サイズから合計ページ数を計算できます。次に、現在のページに基づいて対応する表示を実装します。

レコード総数

mysql> select * from innodb_table_stats;
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| database_name | table_name | last_update  | n_rows | clustered_index_size | sum_of_other_index_sizes |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| fams  | admin  | 2016-07-19 14:47:02 | 3 |   1 |   0 |
| fams  | assets_in | 2016-07-14 14:42:44 | 2 |   1 |   3 |
| fams  | assets_out | 2016-07-14 20:14:31 | 4 |   1 |   3 |
| fams  | class  | 2016-07-14 14:36:02 | 3 |   1 |   0 |
| fams  | dog  | 2016-08-11 15:25:50 | 4 |   1 |   0 |
| fams  | fixed_assets | 2016-07-14 15:55:09 | 6 |   1 |   2 |
| fams  | sub_class | 2016-07-14 14:38:51 | 8 |   1 |   1 |
| fams  | user  | 2016-07-14 14:15:59 | 2 |   1 |   0 |
| mysql  | gtid_executed | 2016-07-14 12:50:25 | 0 |   1 |   0 |
| privilegesystem | privilege | 2016-08-08 08:56:21 | 3 |   1 |   0 |
| privilegesystem | role  | 2016-08-08 08:26:56 | 2 |   1 |   0 |
| privilegesystem | role_privilege | 2016-08-08 09:51:04 | 2 |   1 |   1 |
| privilegesystem | user  | 2016-08-08 11:07:35 | 2 |   1 |   0 |
| privilegesystem | user_role | 2016-08-08 11:08:15 | 2 |   1 |   2 |
| sys  | sys_config | 2016-07-14 12:50:30 | 6 |   1 |   0 |
| test  | datetest | 2016-07-19 10:02:38 | 2 |   1 |   0 |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
16 rows in set (0.00 sec)
ログイン後にコピー

現在のページ

// 获取总的记录数
$sql_total_records = "select count(*) from innodb_table_stats";
$total_records_result = mysql_query($sql_total_records);
$total_records = mysql_fetch_row($total_records_result);
echo "总的记录数位: ".$total_records[0]."<br>";
ログイン後にコピー

ページングコア

// 通过GET方式获得客户端访问的页码
$current_page_number = isset($_GET[&#39;page_number&#39;])?$_GET[&#39;page_number&#39;]:1;
if($current_page_number<1) {
 $current_page_number =1;
}
if($current_page_number>$total_pages){
 $current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;
ログイン後にコピー

このようにして、必要な結果セットを取得できます。次はページ上に表示する方法です。

ページ表示

// 获取到了要访问的页面以及页面大小,下面开始分页
$begin_position = ($current_page_number-1)*$page_size;
$sql = "select * from innodb_table_stats limit $begin_position,$page_size";
$result = mysql_query($sql);
ログイン後にコピー

ページング実装

上記の内容を理解した後、この完全な例を見てみましょう。

コード SlicePage.php

// 处理结果集
echo "<table border=&#39;#CCF solid 1px&#39;><th>Mysql Fixed Assets Table</th>";
echo "<tr><td>DbName</td><td>TableName</td><td>Last_update</td><td>n_Nows</td><td>Clustered_Index_Size</td><td>Sum_od_Other_Index_sizes</td></tr>";
while(($row = mysql_fetch_row($result))){
 echo "<tr>";
 echo "<td>".$row[0]."</td>";
 echo "<td>".$row[1]."</td>";
 echo "<td>".$row[2]."</td>";
 echo "<td>".$row[3]."</td>";
 echo "<td>".$row[4]."</td>";
 echo "<td>".$row[5]."</td>";
 echo "</tr>";
}
echo "</table>";

// 循环显示总页数
?>
<?php
echo &#39;<a href="SlicePage.php?page_number=1">首页</a>  &#39;;
for($i=1;$i<=$total_pages;$i++){
 echo &#39;<a href="./SlicePage.php?page_number=&#39;.$i.&#39;">第&#39;.$i.&#39;页</a>  &#39;; 
}
echo &#39;<a href="SlicePage.php?page_number=&#39;.($current_page_number-1).&#39;">上一页</a>  &#39;;
echo &#39;<a href="SlicePage.php?page_number=&#39;.($current_page_number+1).&#39;">下一页</a>  &#39;;
echo &#39;<a href="SlicePage.php?page_number=&#39;.($total_pages).&#39;">尾页</a>  &#39;;
ログイン後にコピー

結果の最初のページは次のとおりです:

ページ番号をクリックしてください

PHP+MySQL ページングについて知っておくべきこと

次のページ

PHP+MySQL ページングについて知っておくべきこと

概要

ページングは​​ Java 実装と比較すると、依然として非常に柔軟に実装できます。これは人々を煩雑なオブジェクト指向プログラミングから解放し、アイデアが明確であるときに実際に人々に美しさの感覚を与えることができます。

以上がPHP+MySQL ページングについて知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート