ホームページ php教程 php手册 すべてのテーブルをクエリできる「ユニバーサル」クエリ ページネーション クラス

すべてのテーブルをクエリできる「ユニバーサル」クエリ ページネーション クラス

Jun 13, 2016 pm 12:44 PM
ページネーション できる お問い合わせ 親切 表面 ユニバーサル


すべてのテーブルをクエリできる「ユニバーサル」クエリ ページネーション クラス 最近、すべてのテーブルをターゲットにできるクエリ ページング クラスを作成したいと思い立ちました。実際の開発では、結果セットのクエリやページングが最もよく使われるコードだと思いますが、テーブルの構造が多様であるため、コードの再利用率と保守性をできるだけ向上させたいと考えています。
以下は私が書いたものです。より良い改善ができ、より多くのサポートが得られるかどうかを確認するために、ご指導とテストをお願いいたします。
現在、単一のテーブルのみをサポートしており、結合クエリはサポートしていません。しかし、将来的にはそれをどのようにサポートするかを検討する可能性があります。

コード:
/*************************************************** * ************
このクラスは主に、多くのテーブルの単純なデータ クエリを解決するために使用され、現在も改良されています。ネチズンがもっとコメントや提案を提供してくれることを願っています。

私の目標は、ほぼすべての mysql テーブルのクエリに適用でき、結果セットをページネーションできるクラスを開発することです。
クエリに表示されるフィールド値を自動的に識別できます。

chinaunix の友人、特に PHP バージョンのネチズンの長期にわたる支援に特別な感謝の意を表したいと思います。
NightKids については特に言及しておく必要があります。彼は常に私に無償の支援を提供し、ソースコードも含めて助けてくれました。

このクラスは誰でも自由に参照、使用、変更できます。ただし、このテキストは保管してください。
このクラスの使用によって生じるすべての損失は、作者のtoneraとは何の関係もありません。

一部の複雑な結合クエリについては、クラスを派生して SQL 実装を再構築できることをまだ検討中です。
このクラスはそれ以上の表示スタイルを考慮しません。自分で構築できます。
********************************************** ***** ******************/
class browser{
var $c_table; //クエリ対象のテーブル名
var $c_rows; //表示する行数
var $c_lation; //クエリ条件
var $c_result; //データ接続ハンドル
var $c_query; //最終的に構築されたクエリ
var $c_found; //結果セット
var $c_offset; //ページングに表示されるオフセット
var $total; //結果セットの総数

//データベースに接続します
function connect(){
include '../connect.inc.php'
if ( $connection ==false){
$this->c_error.="データベースに接続されていません。
";
終了;
}
$this->c_result=$ 接続;
}

//コンストラクター、変数の初期化
function browser($tablename,$row,$sql,$lation,$orderby){
$this->c_table =$テーブル名;
$this->c_rows=$row;
if(empty($this->c_offset)){
$this->c_offset=0; if (empty($tablename) or empty($row) or empty($sql)){
$this->c_error="クエリ テーブルが存在しないか、表示する行数が存在しないか、クエリ ステートメントが存在しません< ; br>";
}
$this->c_query=$sql;
if (!empty($lation)){
$this->c_query.=" ".$ lation ;
}
if (!empty($orderby)){
$this->c_query.=" ".$orderby;
}
}

/ /総ページ数を計算する
function TatolPage(){
$sult=mysql_query("select count(*) as 'total_rows' from $this->c_table",$this->c_result);
if ($sult==false) {
$this->c_error.="クエリは結果セットの合計数を計算できませんでした。確認してください。
";
exit;
}
$tempvar=mysql_fetch_array($sult);
$this->total=$tempvar[0];
}

//クエリから結果セットを取得し、配列に格納します。 c_found[][]
function GetFound(){
$sult=mysql_query($this->c_query,$this-> ;c_result) または die(mysql_error());
while ($found=mysql_fetch_array($sult)){
$this->c_found[]=$found;
}
}

//データをクエリし、結果を変数にページに保存します。
function ShowTable(){

$this->connect(); TatolPage();

if (empty($_GET[offset])){
$_GET[offset]=0;
$this->c_query.= ".$_GET[オフセット].",​​ ".$this->c_rows;
$sult=mysql_query($this->c_query,$this->c_result) または die(mysql_error());

//クエリを解析し、表示するフィールド値を取得します
$tempvar=explode(" ",$this->c_query);
$fields=explode(",",$ tempvar[1]); //フィールド値 (配列)

//データをテーブルに表示します
$echo_content.="

"; while($found=@ mysql_fetch_array($sult)){
$echo_content.="";
// ユーザーが指定したフィールドを表示します。ここをよく読んでください2 ;$i $echo_content.="" > $echo_content.="< ;/tr>";
}

//ページング
if ($this->c_rows==0){
$this->gt; c_error.="表示される数値各ページの を 0 にすることはできません";
exit;
}
$total_page=ceil($this->total/$this->c_rows);
$ pre_page=$_GET[offset ]-$this->c_rows;
//次のページ
$nex_page=$_GET[offset] $this->c_rows;
if ($pre_page> ;=0){
$echo_content.="上のページ&" ;
}else{
$echo_content.="
前のページ&";
}

for($i=1;$i< =$total_page;$i ){
if ($_GET[offset]/$this->c_rows==($i-1)){
*$this->c_rows.">" .$i."&";
=0 および ($_GET[offset] $this->c_rows)<=$this->total){
$echo_content. ="&次のページ
"; "
";
$echo_content.="".$found[1]."
".$found[$i]."
";
return $echo_content

}
}

/*例
//browser("テーブル名"、各ページに表示される番号、"sql"、"クエリ条件"、"ソート条件");
$gggg=新しいブラウザ("news",5,"ニュースから auto_id,news_title を選択","","ニュースタイムの説明で並べ替え");

$temp=$gggg->ShowTable(); temp;

//$gggg->GetFound() はクエリ結果セットを 2 次元配列に保存しますが、この例では使用されません。
*/
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Xuexin.com で学歴を確認する方法 Xuexin.com で学歴を確認する方法 Mar 28, 2024 pm 04:31 PM

Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

Apple携帯電話でアクティベーション日を確認する方法 Apple携帯電話でアクティベーション日を確認する方法 Mar 08, 2024 pm 04:07 PM

Apple の携帯電話を使用してアクティベーション日を確認する場合、携帯電話のシリアル番号から確認するのが最善の方法ですが、Apple の公式 Web サイトにアクセスし、コンピュータに接続して 3 番目のバージョンをダウンロードすることでも確認できます。 -party ソフトウェアを使用して確認します。 Apple 携帯電話のアクティベーション日を確認する方法 回答: シリアル番号のクエリ、Apple 公式 Web サイトのクエリ、コンピュータのクエリ、サードパーティ ソフトウェアのクエリ 1. ユーザーにとって最善の方法は、自分の携帯電話のシリアル番号を知ることです。シリアル番号を確認するには、[設定]、[一般]、[このマシンについて] を開きます。 2. シリアル番号を使用すると、携帯電話のアクティベーション日を知るだけでなく、携帯電話のバージョン、携帯電話の製造元、携帯電話の工場出荷日などを確認することもできます。 3. ユーザーは Apple の公式 Web サイトにアクセスしてテクニカル サポートを見つけ、ページの下部にあるサービスと修理の欄を見つけて、そこで iPhone のアクティベーション情報を確認します。 4. ユーザー

MySQL と PL/SQL の類似点と相違点の比較 MySQL と PL/SQL の類似点と相違点の比較 Mar 16, 2024 am 11:15 AM

MySQL と PL/SQL は 2 つの異なるデータベース管理システムであり、それぞれリレーショナル データベースと手続き型言語の特性を表しています。この記事では、具体的なコード例を示しながら、MySQL と PL/SQL の類似点と相違点を比較します。 MySQL は、構造化照会言語 (SQL) を使用してデータベースを管理および操作する、一般的なリレーショナル データベース管理システムです。 PL/SQL は Oracle データベースに固有の手続き型言語であり、ストアド プロシージャ、トリガー、関数などのデータベース オブジェクトを記述するために使用されます。同じ

Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Oracle を使用してテーブルがロックされているかどうかをクエリするにはどうすればよいですか? Mar 06, 2024 am 11:54 AM

タイトル: Oracle を使用してテーブルがロックされているかどうかをクエリする方法Oracle データベースでは、テーブル ロックとは、トランザクションがテーブルに対して書き込み操作を実行しているときに、他のトランザクションがテーブルに対して書き込み操作を実行したり、テーブルに構造変更 (列の追加、行の削除など) を加えたりするときにブロックされることを意味します。 、など)。実際の開発プロセスでは、トラブルシューティングを改善し、関連する問題に対処するために、テーブルがロックされているかどうかをクエリする必要があることがよくあります。この記事では、Oracle ステートメントを使用してテーブルがロックされているかどうかをクエリする方法と、具体的なコード例を紹介します。テーブルがロックされているかどうかを確認するには、

PHP で配列のページネーションを実装する最良の方法 PHP で配列のページネーションを実装する最良の方法 May 04, 2024 pm 02:39 PM

PHP 配列のページネーションを行う最も一般的な方法は 2 つあります。array_slice() 関数を使用します。スキップする要素の数を計算し、指定された範囲の要素を抽出します。組み込みイテレータを使用する: Iterator インターフェイスを実装し、rewind()、key()、current()、next()、および valid() メソッドを使用して、指定された範囲内の要素を走査します。

データベースの場所のクエリに関するスキルの共有について話し合う データベースの場所のクエリに関するスキルの共有について話し合う Mar 10, 2024 pm 01:36 PM

フォーラムはインターネット上で最も一般的な Web サイト形式の 1 つで、ユーザーに情報を共有し、交換し、議論するためのプラットフォームを提供します。 Discuz は一般的に使用されているフォーラム プログラムであり、多くのウェブマスターはすでによく知っていると思います。 Discuz フォーラムの開発および管理中に、分析または処理のためにデータベース内のデータをクエリすることが必要になることがよくあります。この記事では、Discuz データベースの場所をクエリするためのヒントをいくつか紹介し、具体的なコード例を示します。まず、Discuz のデータベース構造を理解する必要があります。

通神コインの最新価格を確認するにはどうすればよいですか? 通神コインの最新価格を確認するにはどうすればよいですか? Mar 21, 2024 pm 02:46 PM

通神コインの最新価格を確認するにはどうすればよいですか?トークンは、ゲーム内アイテム、サービス、アセットの購入に使用できるデジタル通貨です。これは分散型であり、政府や金融機関によって管理されていないことを意味します。通神コインの取引はブロックチェーン上で行われます。ブロックチェーンは、通神コインのすべての取引情報を記録する分散台帳です。トークンの最新の価格を確認するには、次の手順を使用できます。 信頼できる価格確認 Web サイトまたはアプリを選択します。一般的に使用される価格クエリ Web サイトには、次のものがあります。 CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/ Binance: https://www.bin

See all articles