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


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

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

私の目標は、ほぼすべての 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.="";
}

//ページング
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 if ($_GET[offset]/$this->c_rows==($i-1)){
*$this->c_rows.">" .$i."&";
=0 および ($_GET[offset] $this->c_rows)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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。